4

我在弄清楚如何返回在 Twitter 上使用主题标签的总次数时遇到问题。过去,我使用以下代码确实有效,但“ http://search.twitter.com/search.json ”地址已被 Twitter 停用。旧代码是:

<?php
   global $total, $hashtag;
   //$hashtag = '#supportvisitbogor2011';
   $hashtag = '#MyHashtag';
   $total = 0;
   function getTweets($hash_tag, $page) {
      global $total, $hashtag;
      $url = 'http://search.twitter.com/search.json?q='.urlencode($hash_tag).'&';
      $url .= 'page='.$page;    
      $ch = curl_init($url);
      curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $json = curl_exec ($ch);
      curl_close ($ch);
      //echo "<pre>";    
      //$json_decode = json_decode($json);
      //print_r($json_decode->results);

      $json_decode = json_decode($json);        
      $total += count($json_decode->results);    
      if($json_decode->next_page){
         $temp = explode("&",$json_decode->next_page);        
         $p = explode("=",$temp[0]);                
         getTweets($hashtag,$p[1]);
      }        
   }

   getTweets($hashtag,1);

   echo $total; 
?>

我知道您知道必须使用授权的 Twitter 应用程序并有权获取数据。我能够设置应用程序,并且可以使用以下代码提取数据列表,但我不确定如何使用该数据得出总计数。有人可以通过更改我拥有的代码或帮助我了解我应该如何去做来帮助我获得总数。这是我提取主题标签数据的代码:

<?php
session_start();
require_once("twitteroauth.php"); //Path to twitteroauth library

$hashtag = "MyHashtag";
$consumerkey = "MYINFOWOULDBEHERE";
$consumersecret = "MYINFOWOULDBEHERE";
$accesstoken = "MYINFOWOULDBEHERE";
$accesstokensecret = "MYINFOWOULDBEHERE";

function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) {
  $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret);
  return $connection;
}

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);

$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=".$hashtag);

echo json_encode($tweets);
?>
4

1 回答 1

3

下面是一个 Twitter 1.1 API 的例子。请记住这一点:

请注意,Twitter 的搜索服务以及扩展的搜索 API 并不意味着是推文的详尽来源。并非所有推文都会被索引或通过搜索界面提供。

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

  1. 下载twitter-api-php并将其解压缩到您服务器上的文件夹中
  2. 创建开发者帐户和应用程序
  3. 创建一个文件twitter_search.php(在您拥有twitter-api-php的同一文件夹中)
  4. 将您的令牌和密钥添加到twitter_search.php

twitter_search.php:

<?php
require_once('TwitterAPIExchange.php');

/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
    'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
    'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
    'consumer_key' => "YOUR_CONSUMER_KEY",
    'consumer_secret' => "YOUR_CONSUMER_SECRET"
);

/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$requestMethod = 'GET';
$hashtag = 'twitterapi';
$getfield = '?q=%23'.$hashtag.'&result_type=recent&include_entities=true&count=100';

// Perform the request
$twitter = new TwitterAPIExchange($settings);
$json_output = $twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest();

// Let's calculate how many results we got
$json = json_decode($json_output);
$n = count($json->statuses);
echo $n;
?>

使用 Twitter 搜索 API

我最初在这里发布了这个例子。

于 2013-10-04T09:51:21.630 回答