【问题标题】:Twitter API 1.1 search query and OAuthTwitter API 1.1 搜索查询和 OAuth
【发布时间】:2012-11-30 10:35:20
【问题描述】:

我开始学习 Twitter API。我想对关键字进行简单搜索,例如“bananaz”,并从它将返回的 JSON 数据中获取一些信息。 我使用 PHP 和 abrahams twitteroauth 库。

我的代码是这样的:

require_once('/twitteroauth.php');
$connection = new TwitterOAuth ('****', '****', '****', '******');

$statuses = $connection->get('search/tweets.json?q=bananaz');

print_r($statuses);

但它返回的只是“抱歉,该页面不存在 [code] => 34”

【问题讨论】:

    标签: php api twitter twitter-oauth


    【解决方案1】:

    2013 年 10 月更新答案

    TwitterOAuth 现在支持新的 Twitter API 1.1 并且搜索经过身份验证 (documentation) - 搜索查询的工作方式与原始代码类似:

    require_once('/twitteroauth.php');
    $connection = new TwitterOAuth ('****', '****', '****', '******');
    
    $statuses = $connection->get('search/tweets', array('q' => 'bananaz'));
    
    print_r($statuses);
    

    旧答案(Twitter API v1)

    Twitter 不需要对搜索进行身份验证,因此 TwitterOAuth 不支持它。用于搜索的 URL 与 API URL 不同,这就是您收到“页面不存在错误”(Twitter doco) 的原因。

    要解决这个问题,您可以在通过 TwitterOAuth 进行呼叫时使用完整的 URL:

    $statuses = $connection->get('http://search.twitter.com/search/tweets.json?q=bananaz');
    

    不过 author of the library recommends 只使用 cURL 进行搜索,节省了使用库的开销:

    $ch = curl_init();    
    curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/search/tweets.json?q=bananaz");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $json = curl_exec($ch);
    
    curl_close($ch);
    
    $statuses = json_decode($json);
    

    【讨论】:

    【解决方案2】:

    请注意 Twitter API 1.1 要求身份验证。 看看这个文档:

    https://dev.twitter.com/docs/api/1.1/get/search/tweets

    【讨论】:

      猜你喜欢
      • 2013-02-19
      • 2012-08-19
      • 2013-03-30
      • 2013-06-26
      • 2014-05-24
      • 2013-06-11
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多