2017-09-06 14 views
0

私はTwitter APIを使用していて、haventは最後の1時間だけからツイートを取得する方法を見つけましたか?Twitter API - 過去24時間または最後の時間からツイートを取得する

私は最後の24時間から、または最後の1時間からだけつぶやきを得る方法を理解できません。誰かが私を助けることができますか?

ここに私のスクリプトです。このスクリプトは、現在、ツイートをカウントしますが、通常の...

<?php 
ini_set('display_errors', 1); 
require_once('TwitterAPIClass/TwitterAPIExchange.php'); 

/** Set access tokens here - see: https://dev.twitter.com/apps/ **/ 
$settings = array(
    'oauth_access_token' => "XXXXX", 
    'oauth_access_token_secret' => "YYYYY", 
    'consumer_key' => "XXXX", 
    'consumer_secret' => "YYYY" 
); 


$query = '%24synx'; 
$max_id = 0; 
$tweets_count = 0; 

while (true) { 
    // First API call 
    if ($max_id == 0) { 
    $url = 'https://api.twitter.com/1.1/search/tweets.json'; 
    $getfield = "?q=".$query."&count=100"; 
    $requestMethod = 'GET'; 
    $twitter = new TwitterAPIExchange($settings); 
    $twitter_data = json_decode($twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), true); 

    // Repeated API call 
    } else { 
    // Collect older tweets 
    --$max_id; 

    $url = 'https://api.twitter.com/1.1/search/tweets.json'; 
    $getfield = "?q=".$query."&count=100&max_id=".$max_id.""; 
    $requestMethod = 'GET'; 
    $twitter = new TwitterAPIExchange($settings); 
    $twitter_data = json_decode($twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), true); 
    }   

$tweets = $twitter_data['statuses']; 

print_r($tweets); 

// Exit loop when no more tweets are returned 
if (sizeof($tweets)==0) { 
    break; 
    } 

    // Count tweets 
    foreach($tweets as $tweet) { 
    ++$tweets_count; 
    $max_id = $tweet['id']; 
    } 

//Sleep 3 seconds after every API call, to not exceed API rate limit 
sleep(3); 
} 


echo $tweets_count;  
?> 

答えて

0
このループで

foreach ($tweets as $tweet) { 
    ++$tweets_count; 
    $max_id = $tweet['id']; 
}   

としての最後の7日からつぶやき($tweet['created_at'])の日付/時刻を確認してください。値が24時間を超えると、外側のwhileループを終了します。

+0

ありがとうございました。どのようにそれを正しく行うには? Twitterの "created_at"日付形式はかなり変わっているようです:/ –

+0

UTC時刻(グリニッジ標準時)です。したがって、現地時間に変換するか、現地時間をUTCに変換してください。奇妙なことは何ですか? – Jonas

+0

うん、それは私の時間にそれを変換するための最良の方法は?どうもありがとう。 –

関連する問題