标签: twitter-oauth

在GPL桌面应用程序中处理Twitter API密钥的标准方法是什么?

在开发需要访问twitter API的桌面应用程序时,必须以某种方式将应用程序的API密钥(特定于应用程序的用户密钥和使用者密钥)传递给用户.Twitter的API TOS声明应用程序的API密钥无法公开,如果发生这种情况,他们会重置它.当该应用程序在GPL下时,意味着开发人员需要向用户提供源代码,该用户如何在不公开可用的情况下获取API密钥?有没有一种标准的方法来处理这个问题?谢谢.

编辑:为了澄清这种情况,我在我的代码中将它们以纯文本形式存储在cree.py中,直到有意识的决定.但昨天Twitter支持团队联系我说他们已经重置了我的密钥,他们的推理如下:

C.您不应该征求其他开发人员的消费者密钥或消费者保密信息,特别是如果他们将被存储或用于开发人员无法控制的行为.被破坏的密钥和秘密将由Twitter重置.例如,不允许在线服务要求提供这些值以提供"推特 - 品牌"服务. https://dev.twitter.com/terms/api-terms 如果应用程序的密钥是公开发布的,则允许外部各方劫持应用程序的API访问权限.这会带来巨大的滥用风险,因此我们会重置您的API密钥.请注意确保这些密钥不会再次公开发布.

谢谢,Twitter API政策

twitter desktop-application twitter-oauth

5
推荐指数
1
解决办法
570
查看次数

在Twitter中使用Scribe库for Oauth和回调网址

我正在使用scribe在我的应用程序中实现twitter.用户验证我的应用程序并重定向到新的URL后,我得到了oauth_token和oauth_verifier,但无法弄清楚如何从中生成oauth_token和oauth_secret.请妥善解决问题并提前感谢!!!

java twitter oauth scribe twitter-oauth

5
推荐指数
1
解决办法
4755
查看次数

是不是oauth_signature重新发明了SSL轮?

在使用twitter API时,我遇到的oauth_signature基本上是(请求体+请求参数+ nonces/timestamps + a consumer_secret)的哈希值.该consumer_secret已知仅到正在发送的请求的应用程序.

在Twitter的案例中:

  • 所有通信必须通过SSL进行.
  • twitter consumer_secret向每个授权的应用程序发出.

由于主要用于oauth_signature防止MITM(即没有山雀(在传输中篡改):),在我看来,这个特定的用例可以通过相互SSL解决

  • Twitter而不是发布consumer_secret,可以为每个应用程序颁发SSL证书.

虽然客户端ssl证书的这种想法可能看起来像20世纪90年代的互联网奥秘,但它并不成功,主要是因为验证客户端证书的信任链存在问题.这个问题不会出现在这里,因为twitter将是证书的唯一发行者和验证者.缺点是更多地涉及代表Twitter生成初始应用程序/客户端ssl证书的努力,但回报将是REST API的简单性,这可以依赖于客户端是他所说的人的保证.

请注意,在这种情况下,twitter只是一个例子.AFAIK,大多数其他oauth实现者使用类似的策略,这里的要点适用于已经强制要求SSL的任何大型OAuth实现者.

我在这里错过了什么?互联网惯性?

ssl restful-authentication oauth client-certificates twitter-oauth

5
推荐指数
1
解决办法
219
查看次数

使用Android AccountManager Twitter凭据创建Twitter4J AccessToken

我使用以下代码从Android AccountManager获取Twitter凭据:

AccountManager am = AccountManager.get(this);
Account account = am.getAccountsByType("com.twitter.android.auth.login")[0];
am.invalidateAuthToken("com.twitter.android.auth.login", null);
am.getAuthToken(account, "com.twitter.android.oauth.token", null, this, createCallback(TOKEN), null);
am.getAuthToken(account, "com.twitter.android.oauth.token.secret", null, this, createCallback(TOKEN_SECRET), null);
Run Code Online (Sandbox Code Playgroud)

我正在使用回调返回的值来设置Twitter4J Twitter对象:

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
twitter.setOAuthAccessToken(new AccessToken(token, tokenSecret));
User user = twitter.verifyCredentials();
Run Code Online (Sandbox Code Playgroud)

但是在调用verifyCredentials()时会产生以下异常:

Exception connecting to twitter
    Received authentication challenge is null
    Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=6f0f59ca or
    http://www.google.co.jp/search?q=200bae40
    TwitterException{exceptionCode=[6f0f59ca-200bae40 1de2170b-e16a1586], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.2}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89)
    at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:126)
    at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:578) …
Run Code Online (Sandbox Code Playgroud)

twitter android accountmanager twitter4j twitter-oauth

5
推荐指数
1
解决办法
1528
查看次数

通过oAuth授权,发布到Twitter

我已经创建了一个Twitter应用程序来自动发布到我的Twitter帐户.所以,我不需要授权新用户.

我已经设置了读/写访问级别,并收到了访问令牌.我在应用程序中使用了OAuth工具来生成cURL命令:

curl --request'POST''https : //api.twitter.com/1/statuses/update.json'-- data'status = Maybe + he%27ll + finally + find + his + keys.+%23peterfalk' --header'授权:OAuth oauth_consumer_key ="...",oauth_nonce ="97fad626790e8e5988d4a06cfd47fa74",oauth_signature ="...",oauth_signature_method ="HMAC-SHA1",oauth_timestamp ="1364161424",oauth_token ="......" ,oauth_version ="1.0"' - verbose

在命令之上,它说:

重要提示:此功能仅在几分钟内有效.还记得cURL命令实际上会执行请求.

我假设这将在Linux终端中工作.

我想知道如何将其转换为PHP cURL命令.这是我尝试过的.请注意,$ DST的值是https://dev.twitter.com/docs/auth/authorizing-request中"DST"的值; 它也等于--header 'Authorization:OAuth工具中cURL命令之后的字符串值.

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url,
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        data => 'status='.urlencode($status),
        header => 'Authorization: '.$DST
    )
));
$resp = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

但价值$resp是:

{
request: "/1/statuses/update.json",
error: …
Run Code Online (Sandbox Code Playgroud)

php twitter curl twitter-oauth

5
推荐指数
1
解决办法
1778
查看次数

使用passport.js twitter登录重新登录用户

在护照我有Twitter身份验证.一切都很好登录明智.我有这个代码

app.get('/auth/twitter', function (req, res) {
    if (req.user) {
        return res.redirect('/');
    }
    return passport.authenticate('twitter')(req, res);
});
Run Code Online (Sandbox Code Playgroud)

因此,如果用户已经使用Twitter登录到我的网站,它只会重定向回来(最终可能会给出一条消息).一旦他们退出网站并再次点击Twitter登录,他们就会再次访问Twitter授权应用页面.它不应该.当我查看其他网站时,它永远不会要求我再次授权该应用程序.如果我查看我的推特配置文件的授权应用程序部分,我会看到我正在开发的应用程序.

为什么我的应用程序在我已经提交时仍继续要求授权?我该怎么改变这个(我在db中存储令牌和token_secret)?谢谢您的帮助.

node.js twitter-oauth passport.js

5
推荐指数
1
解决办法
836
查看次数

REST API,关于403错误代码?

我们使用软件应用程序将推文发布到来自同一IP地址的多个帐户.在twitter的回应中,我们得到403错误代码,我们使用的API是REST API.

是否对IP地址有任何限制,因为我们肯定没有跨越为REST API提到的API后限.

我们也不会超过140个字符.

等待回复..

提前致谢..

java twitter4j twitter-oauth

5
推荐指数
1
解决办法
3016
查看次数

使用satellizer在Twitter中使用Oauth2提供程序登录

我想建立一个用于Twitter的卫星登录.但我不能说使用Oauth2.0是如何做到的.

我的功能在这里:

$authProvider.twitter({
  authorizationEndpoint: 'https://api.twitter.com/oauth/authorize',
  redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,
  scope: [],
  scopeDelimiter: ' ',
  type: '2.0',
  clientId: '[myClientID]'
});
Run Code Online (Sandbox Code Playgroud)

我错了什么?

oauth-2.0 twitter-oauth angularjs

5
推荐指数
1
解决办法
410
查看次数

使用API​​ Twitter获取特定推文的所有回复

我在Swift应用程序中使用Twitter API,我想显示特定的推文及其所有回复,我该怎么做?

我看到许多旧帖子说"没有办法检索推文的回复",它改变了吗?现在有办法吗? 帖子的例子

twitter ios twitter-oauth swift

5
推荐指数
0
解决办法
647
查看次数

适用于Android的React-Native Twitter登录

我试图通过twitter与react-native登录.显然对于iOS来说它是有效的,因为我使用的是react-native-simple-auth软件包.

但是android怎么样?似乎还没有针对Twitter本机登录的软件包?

android twitter-oauth twitter-fabric react-native twitter-login

5
推荐指数
1
解决办法
1753
查看次数