我使用以下代码读取consumer_key和consumer_secret从config.php 读取,将其传递给twitter并从中检索一些信息.
以下脚本尝试执行的操作是"缓存"request_token和request_secret.所以在理论上我应该能够重用这些细节(所有4个细节都在需要时自动发推文).
<?php
require_once('twitteroauth/twitteroauth.php');
require_once('config.php');
$consumer_key = CONSUMER_KEY;
$consumer_secret = CONSUMER_SECRET;
if (isset($_GET["register"]))
{
// If the "register" parameter is set we create a new TwitterOAuth object
// and request a token
/* Build TwitterOAuth object with client credentials. */
$oauth = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request = $oauth->getRequestToken();
$request_token = $request["oauth_token"];
$request_token_secret = $request["oauth_token_secret"];
// At this I store the two request tokens somewhere.
file_put_contents("request_token", $request_token);
file_put_contents("request_token_secret", $request_token_secret);
// Generate a request link and output …Run Code Online (Sandbox Code Playgroud) 我使用SocialLib项目使用twitter集成.但事情正在不断发展
java.lang.NoClassDefFoundError: oauth.signpost.commonshttp.CommonsHttpOAuthConsumer
Run Code Online (Sandbox Code Playgroud)
在线
httpOauthConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
Run Code Online (Sandbox Code Playgroud)
我的进口是:
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;
import oauth.signpost.exception.OAuthNotAuthorizedException;
Run Code Online (Sandbox Code Playgroud)
以及我使用和下载的罐子:http://code.google.com/p/oauth-signpost/downloads/list
怎么回复这个?
汉克斯
我正在进行twitter认证,一切似乎都运行良好,直到我得到getAccessToken哪些回报Array ( [ ] => ).
我做了什么:
第一阶段:
$connection = new TwitterOAuth('xxxxxxxx','xxxxxxxx');
$temporary_credentials = $connection->getRequestToken('http://example.com/profile.php?passurl=1');
$redirect_url = $connection->getAuthorizeURL($temporary_credentials);
$_COOKIE['oauth_token'] = $temporary_credentials['oauth_token'];
$_COOKIE['oauth_token_secret'] = $temporary_credentials['oauth_token_secret'];
header("Location: $redirect_url");
Run Code Online (Sandbox Code Playgroud)第二阶段(这是我遇到问题的地方)
$connection =
new TwitterOAuth(
'xxxxxxxxxx',
'xxxxxxxxxx',
$_COOKIE['oauth_token'],
$_COOKIE['oauth_token_secret']
);
$token_credentials = $connection->getAccessToken();
Run Code Online (Sandbox Code Playgroud)我打算$token_credentials在数据库中保存值,但它返回一个空数组:Array ( [ ] => )
我不对的是什么?
我一直在使用Twitter Oauth API从我的php应用程序将推文发布到Twitter时间轴。运行良好。
<?php
$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);
$message = "This is a test message.";
$tweet->post('statuses/update', array('status' => "$message"));
?>
Run Code Online (Sandbox Code Playgroud)
但是我想知道,是否有一个API可以将推文发布到我的朋友的时间轴上(我正在Twitter上关注的人)?还是twitter API仅允许将推文发布到经过身份验证的用户的时间轴上?
我试图使用R中的twitteR软件包从他们的API编译推特上与世界杯相关的所有推文的语料库.
我将以下代码用于单个#标签(例如).但是,我的问题是看起来我只是"被授权"访问一组有限的推文(在这种情况下,只有最近的32条).
library(twitteR)
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "http://api.twitter.com/oauth/authorize"
#consumerKey <- Omitted
#consumerSecret <- Omitted
twitCred <- OAuthFactory$new(consumerKey=consumerKey,
consumerSecret=consumerSecret,
requestURL=reqURL,
accessURL=accessURL,
authURL=authURL)
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
twitCred$handshake()
#setwd("/Users/user/FIFA")
#save(twitCred, file="twitterAuthentication.Rdata")
#load("twitterAuthentication.Rdata")
registerTwitterOAuth(twitCred)
FIFA<-searchTwitter("#WorldCup", n=9999, since='2007-10-30')
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
Warning message:
In doRppAPICall("search/tweets", n, params = params, retryOnRateLimit = retryOnRateLimit, :
9999 tweets were requested but the API can only return 32
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何使用特定的标签访问最大数量的推文?(另外,有人可以澄清"最大"限制实际上是什么吗?为什么我似乎无法接近这个值(~1500条推文)?
我在Twitter Developer网站上测试了OAuth,并分别获得了Signature基本字符串,授权标题和cURL命令的签名结果,向我表明我拥有从Twitter服务器中提取相应数据的适当权限和授权.如果我错了,或者如果您需要进一步的信息,请告知/纠正我.
我的API权限目前设置为:读取,写入和访问直接消息
Session Info:
R version 3.0.2 (2013-09-25)
Platform: …Run Code Online (Sandbox Code Playgroud) 我尝试在Google App Engine中获取一些推文并对该推文进行一些分析.
由于urllib3中的一些问题,我面临以下错误:
AttributeError: 'NoneType' object has no attribute 'wrap_socket'
Run Code Online (Sandbox Code Playgroud)
最后三个电话是:
File "/Users/krishna/Documents/DATASCI/twitterapi/analyzetweets/requests/packages/urllib3/connectionpool.py", line 304, in _make_request
self._validate_conn(conn)
File "/Users/krishna/Documents/DATASCI/twitterapi/analyzetweets/requests/packages/urllib3/connectionpool.py", line 722, in _validate_conn
conn.connect()
File "/Users/krishna/Documents/DATASCI/twitterapi/analyzetweets/requests/packages/urllib3/connection.py", line 164, in connect
self.sock = ssl.wrap_socket(conn, self.key_file, self.cert_file)
AttributeError: 'NoneType' object has no attribute 'wrap_socket'
Run Code Online (Sandbox Code Playgroud)
Traceback(最近一次调用最后一次):
INFO 2014-08-24 10:37:05,800 connectionpool.py:695] Starting new HTTPS connection (1): api.twitter.com
ERROR 2014-08-24 10:37:06,175 webapp2.py:1528] 'NoneType' object has no attribute 'wrap_socket'
Traceback (most recent call last):
File "/Users/krishna/google-cloud-sdk/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.3/webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, …Run Code Online (Sandbox Code Playgroud) twitter google-app-engine urllib3 twitter-oauth python-requests
我正在使用这个npm包对Twitter用户进行OAuth Echo验证:https://github.com/ciaranj/node-oauth
有没有人有一个如何使用此包来验证用户凭据的示例?
据我所知,我正在从iOS应用程序正确获取X-Auth-Service-Provider和X-Verify-Credentials-Authorization,但我在使用这个程序包时遇到问题.
这是OAuthEcho构造函数:
var oauthEcho = new OAuthEcho(
"https://twitter.com",
"https://api.twitter.com/1.1/account/verify_credentials.json",
app.config.twitter.consumer_key,
app.config.twitter.consumer_private_key,
"1.0A",
"HMAC-SHA1"
);
Run Code Online (Sandbox Code Playgroud)
真的很感激任何帮助!
谢谢!!
我正在尝试使用twitteroauth与最新版本分享帖子.以下是我的代码.
require APP."Vendor/twitteroauth-master/autoload.php"; // twitter v0.5.1 SDK
if(isset($_REQUEST['oauth_verifier'])) {
$request_token = [];
$request_token['oauth_token'] = $this->Session->read('twtr_oauth_token');
$request_token['oauth_token_secret'] = $this->Session->read('twtr_oauth_token_secret');
/* If denied, bail. */
if (isset($_REQUEST['denied'])) {
exit('Permission was denied. Please start over.');
}
/* If the oauth_token is not what we expect, bail. */
if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) {
$this->Session->write("twtr_oauth_token" , '');
$this->Session->write("twtr_oauth_token_secret" , '');
exit;
}
debug($request_token);
/* Create TwitteroAuth object with app key/secret and token key/secret from default phase */
$connection = new TwitterOAuth("KEY", …Run Code Online (Sandbox Code Playgroud) 我几周前开始开发我的第一个IOS应用程序,它需要Twitter和Facebook登录.
我对两个平台在安全/身份验证方面采取的不同方法感到非常惊讶.
Facebook使用IOS Bundle ID方法,这看起来很棒,因为每个Bundle ID都是唯一的,你不能代表另一个用户发布应用Bundle ID,所以Facebook很容易弄清楚你是不是自己就是这样.
Twitter使用他在IOS中的Web/REST应用程序中使用的传统密钥/密钥对,而它适用于Web,因为您不需要将这些密钥暴露给客户端,而IOS应用程序则不然.
"要使用您的应用程序凭据初始化Twitter工具包,请将它们传递给startWithConsumerKey:consumerSecret:"
"调用startWithConsumerKey:consumerSecret:将覆盖任何自动配置的键.自动配置的键位于应用程序的Info.plist键下"
我的理解是,即使我使用我的密钥,或者我使用Fabric生成的密钥,这些密钥也会暴露在plist上,这是一种存储私钥的非安全方法.
我相信我在这里遗漏了一些东西,请告诉我它是如何工作的.
我的应用程序需要一个Twitter帐户来创建帐户和身份验证.然后,用户可以根据自己的喜好链接任何其他Twitter帐户.因此,用户有一个主要的Twitter帐户,允许他连接到我的应用程序,然后,他可以浏览他之前在应用程序中链接的所有帐户.我的问题是Twitter方面的登录过程.
首先,我考虑过force_login只在连接新帐户时进行设置.这样,用户每次想要连接到我的应用程序时都不必在Twitter上重新连接.并且,当他想要链接另一个帐户时,force_login强迫他选择正确的帐户.问题是Twitter保持连接到最后一个认证帐户.因此,如果用户在链接另一个帐户后立即从我的应用程序注销,然后使用Twitter登录,则使用第二个帐户登录,并在我的应用程序上创建新用户.例:
用户有两个推特账号:@a和@b.他用@a对Twitter进行了身份验证.他注册到我的应用程序,Twitter向他显示我的应用程序询问的权限,用户接受,他被重定向到我的应用程序,一个可以用@a创建的新用户.然后,他链接@b帐户.感谢force_login,Twitter要求他提供证书.用户登录@b,Twitter询问权限,然后该帐户链接到我的应用程序上的用户.我们现在有一个用户可以使用@a进行身份验证,并且该用户可以链接到@b.然后,我的应用程序上的会话结束,用户需要重新连接.因为没有force_login,Twitter看到他已经与一个为我的应用程序授权的帐户连接,因此无需用户采取任何操作即可接受连接.但是,没有人看到的是用户与最后一个帐户连接:@b.所以,我得到了@b的登录动作,这意味着新的用户创建.我现在有两个用户:User1可以使用@a进行身份验证并链接到@b,而User2可以使用@b进行身份验证.我的用户不明白它的@a帐户在哪里.
所以我的问题是:我必须在force_login任何地方设置吗?或者还有另一种方法可以告诉Twitter在链接帐户时不进行身份验证吗?
这并不容易.请记住,许多用户应该管理同一个帐户.一个简单的例子:@Maurice和@Roy是@ReynholmIndustries公司的成员.他们将在Twitter上使用自己的帐户在我的服务上创建自己的帐户.所以在我的服务上,我会有User1可以连接@Maurice和User2,可以连接@Roy.然后,@ Maurice将@ReynholmIndustries帐户添加到我的服务中.因此,在使用@Maurice登录后,他可以管理@Maurice和@ReynholmIndustries.然后,@ Roy将添加@ReynholmIndustries.没有人可以使用@ReynholmIndustries登录,但是@Maurice和@Roy,他们自己的帐户可以管理它.然后,显然有人可以通过注册@ReynholmIndustries来创建新用户.
难点在于添加新帐户:UserA通过在Twitter上登录来登录我的服务.他现在已经被认证为@Maurice并且作为UserA服务并且可以管理@Maurice.然后,他通过在Twitter上登录@ReynholmIndustries添加了@ReynholmIndustries.他现在已经在@Maurice的服务上获得认证,可以管理@Maurice和@ReynholmIndustries,但在Twitter上,他现在已经被认证为@ReynholmIndustries.后来,他失去了我的服务认证,他点击登录按钮.他被重定向到twitter oauth表格,我们现在有两个选择:
通过写这个,我意识到这不是一个问题:如果我的服务有本地身份验证,用户每次输入auth时都应该输入login/pass ...也许force_login真的是正确的选项.你怎么看待这一切?
twitter-oauth ×10
twitter ×8
php ×4
oauth ×3
android ×1
cakephp-2.0 ×1
data-mining ×1
ios ×1
login ×1
node.js ×1
plist ×1
r ×1
urllib3 ×1