2013-11-25 23 views
0

我想使用twitter api 1.1和php(亞伯拉罕的圖書館)拉特定用戶的推文(獲取)。想要從最後一次獲取後發送的用戶獲取所有推文

早些時候我做了很久以前,當twitter有api 1.0使用ID以後... 我曾經從用戶拉最近的所有tweet ... ....從大多數舊的解析它,直到最近的一個...和使用將id最新的ID保存爲文件中的id ... 然後在下一次讀取時,我用來提供查詢中的id,然後獲取僅在該ID後發送的所有tweets。

不知怎的,我失去了代碼,並在1.1教程,我無法找到使用自ID的...

我試圖重寫它:

$tweets = $twitter->get('statuses/user_timeline', array('screen_name' => '@example', 'exclude_replies' => 'false', 'include_rts' => 'false', 'since_id' => $earlier_stored_since_id)); 

但它不會給正確的結果。 我的意思是它給出了結果,但這些並不按時間順序....我想結果順序最舊到最新,這樣在我的foreach循環中,我可以保存最後解析的tweet的id(這應該是來自此獲取的最新的一個) 。

類似:

if(!empty($tweets)) { 
foreach($tweets as $tweet) { 

    # Access as an object 
    $tweetText = $tweet->text; 
    $sinceId= $tweet->id_str; 
    echo '$sinceId is '.$sinceId; 
    TwitterUtils::echoNewLine(0); 

    # Make links active 
    //$tweetText = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="http:%2f%2f$2$3" target="_blank">$1$2$4</a>', $tweetText); 
//not activation of links working 

    # Linkify user mentions 
    //$tweetText = preg_replace("/@(\w+)/", "<a href="http:/www.twitter.com/$1" target="_blank">@$1</a>", $tweetText); 
    //linkifying not working 

    # Linkify tags 
    //$tweetText = preg_replace("/#(\w+)/", "<a href="http:/search.twitter.com/search?q=$1" target="_blank">#$1</a>", $tweetText); 
//linkifying tags not working 

    # Output 
    echo $tweetText; 
    } 
    file_put_contents($file_name_aditya, $sinceId); 
    echo 'sinceId put in file is '.$sinceId; 
    } 

任何人都可以指導我在哪裏,我犯了一個錯誤?

在此先感謝!

回答

0

在python中處理類似的事情,唯一的區別是我保存'最大'since_id,如twitter dev docs所述。不依賴於按時間順序收到的推文。

+0

謝謝,我發現這很有用。 – adityag

+0

現在我存儲了所有推送到php數組中的推文的ID,當所有的推文都被加密時,我使用max函數從這些數組中獲取最大ID,然後將其放入我的文件中... using file_put_copntents – adityag

相關問題