2013-09-26 21 views
5

Mam problem z obliczeniem, jak zwrócić całkowitą liczbę razy, ile razy hashtag był używany na Twitterze. W przeszłości użyłem następującego kodu, który działał, ale adres "http://search.twitter.com/search.json" został już wycofany przez Twittera. Stary kod to:Twitter API 1.1 Hashtag Count

<?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; 
?> 

Wiem, że musisz użyć autoryzowanej aplikacji twitter i mieć dostęp do możliwości pobierania danych. Udało mi się skonfigurować aplikację i mogę pobrać listę danych przy użyciu następującego kodu, ale nie jestem pewien, jak wykorzystać te dane, aby uzyskać całkowitą liczbę. Czy ktoś może mi pomóc uzyskać całkowitą przez zmianę kodu mam lub pomagając mi, jak powinienem to zrobić. Oto kod mam, że ciągnie dane hashtag:

<?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); 
?> 

Odpowiedz

4

Oto jeden z przykładów na Twitterze API 1.1 wykonane z this. Należy o tym pamiętać:

Należy pamiętać, że usługa wyszukiwania Twittera, a co za tym idzie, Search API nie ma być wyczerpująca źródłem tweetów. Nie wszystkie Tweety będą indeksowane lub udostępniane za pomocą interfejsu wyszukiwania.

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

  1. Pobierz twitter-api-php i rozpakować go do katalogu na serwerze
  2. Create a Developer Account and an Application
  3. Utwórz plik twitter_search.php (w tym samym folderze, gdzie masz twitter-api-php)
  4. Dodaj swoje tokeny i klucze do 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; 
?> 

Using the Twitter Search API

I posted originally this example in here.