标签: twitter-oauth

PHP/Twitter oAuth - 自动推文

我使用以下代码读取consumer_keyconsumer_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)

php twitter twitter-oauth

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

java.lang.NoClassDefFoundError:oauth.signpost.commonshttp.CommonsHttpOAuthConsumer android

我使用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

怎么回复这个?

汉克斯

android oauth twitter-oauth

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

Twitter OAUTH返回一个空数组

我正在进行twitter认证,一切似乎都运行良好,直到我得到getAccessToken哪些回报Array ( [ ] => ).

我做了什么:

  1. 第一阶段:

    $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)
  2. 第二阶段(这是我遇到问题的地方)

    $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 ( [ ] => )

我不对的是什么?

php twitter oauth twitter-oauth

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

使用Twitter API向用户发布推文

我一直在使用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仅允许将推文发布到经过身份验证的用户的时间轴上?

php twitter twitter-oauth

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

搜索推特并通过主题标签获取推文,最大化返回的搜索结果数量

我试图使用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)

twitter r oauth data-mining twitter-oauth

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

AttributeError:'NoneType'对象在GAE中没有属性'wrap_socket'

我尝试在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

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

如何进行Twitter OAuth Echo验证通话?

我正在使用这个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)

真的很感激任何帮助!

谢谢!!

twitter node.js twitter-oauth

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

Twitter OAuth - 访问令牌无效或过期

我正在尝试使用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)

php twitter-oauth cakephp-2.0

5
推荐指数
2
解决办法
2816
查看次数

IOS Twitter和Facebook登录方法和安全性

我几周前开始开发我的第一个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 plist ios twitter-oauth facebook-login

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

处理许多Twitter帐户连接的最佳方法是什么?

我的应用程序需要一个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表格,我们现在有两个选择:

  1. 没有force_login:他被认证为@ReynholmIndustries,因为这是他签约的最后一个帐户.因此,Twitter不会要求他授权,他会自动重定向到我的服务,但不是作为UserA与@Maurice一起授权,而是作为新用户:UserC将使用@ReynholmIndustries授权.UserC只能管理@ReynholmIndustries,因为他是新用户.
  2. 使用force_login:即使他在Twitter上与@ReynholmIndustries一起授权,他也需要提供登录/通行证,他将确保选择正确的帐户:@Maurice,以访问UserA并管理这两个帐户.但是,每次他必须为我的服务授权时,他将始终必须登录/通过.

通过写这个,我意识到这不是一个问题:如果我的服务有本地身份验证,用户每次输入auth时都应该输入login/pass ...也许force_login真的是正确的选项.你怎么看待这一切?

twitter login twitter-oauth

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