2012-03-14 113 views
0

我想下載推特到我自己的數據庫。我想給腳本中的#subject,然後下載最新的推文。我想這樣做與PHP存儲推文位置信息

我只能找到網站,您可以監控它,但我需要一個腳本。有人知道嗎?

重要的是,我可以下載消息,作者和位置。 我不熟悉Twitter,所以我不確定這是否可能。

感謝,

託比

+1

「我想給腳本中的#subject」。你的意思是你想給查詢並根據你給的關鍵字得到結果嗎? – Zakaria 2012-03-14 15:11:13

回答

1

這將涉及使用它作爲一個RESTful Web服務實現的Twitter API。主要你會使用Twitter search API

使用Twitter的API和搜索API: 你首先需要的是你的搜索查詢,如果你不知道的它然後使用search page。以搜索網址結束並將其用作搜索API的參數。例如,搜索hashtag #stackoverflow會爲我們提供以下URL。

http://twitter.com/#!/search/%23stackoverflow 

對於搜索API的查詢將如下所示。

http://search.twitter.com/search.json?q=%23stackoverflow 

上面的URL返回一個JSON響應,您可以在您的PHP腳本中解析和使用該響應。

用PHP解析搜索: 與Twitter的API此腳本接口,並打印出結果,將結果存儲是一個練習留給讀者:

<?php 
class Twitter { 
    public function __construct() { } 
    public function searchResults($query = null) { 
     $url = "http://search.twitter.com/search.json?q=" . urlencode($query); 
     $curl = curl_init(); 

     // cURL options for the current session. 
     $options = array(CURLOPT_URL => $url, 
         CURLOPT_RETURNTRANSFER => 1 
        ); 
     // If all the options are set correctly then fetch and parse the results. 
      if (curl_setopt_array($curl, $options)) { 
       // Execute cURL and store the returned string. 
       $json_search_results = curl_exec($curl); 
       curl_close($curl); 
       // Decode the JSON string returned by cURL. 
       $search_results = json_decode($json_search_results); 
       return $search_results; 
      } 
    } 
} 

// Searching Twittter using the new class. 
$Twitter = new Twitter(); 
$search = Twitter::searchResults("#stackoverflow"); 
var_dump($search); 
?> 

腳本的輸出:

object(stdClass)#2 (11) { 
    ["completed_in"]=> 
    float(0.137) 
    ["max_id"]=> 
    int(179961163788976129) 
    ["max_id_str"]=> 
    string(18) "179961163788976129" 
    ["next_page"]=> 
    string(52) "?page=2&max_id=179961163788976129&q=%23stackoverflow" 
    ["page"]=> 
    int(1) 
    ["query"]=> 
    string(16) "%23stackoverflow" 
    ["refresh_url"]=> 
    string(47) "?since_id=179961163788976129&q=%23stackoverflow" 
    ["results"]=> 
    array(15) { 
    [0]=> 
    object(stdClass)#3 (18) { 
     ["created_at"]=> 
     string(31) "Wed, 14 Mar 2012 16:04:19 +0000" 
     ["from_user"]=> 
     string(7) "kel666_" 
     ["from_user_id"]=> 
     int(55252171) 
     ["from_user_id_str"]=> 
     string(8) "55252171" 
     ["from_user_name"]=> 
     string(14) "Fabio Spinelli" 
     ["geo"]=> 
     NULL 
     ["id"]=> 
     int(179961163788976129) 
     ["id_str"]=> 
     string(18) "179961163788976129" 
     ["iso_language_code"]=> 
     string(2) "it" 
     ["metadata"]=> 
     object(stdClass)#4 (1) { 
     ["result_type"]=> 
     string(6) "recent" 
     } 
     ["profile_image_url"]=> 
     string(71) "http://a0.twimg.com/profile_images/585239857/n571218917_3111_normal.jpg" 
     ["profile_image_url_https"]=> 
     string(73) "https://si0.twimg.com/profile_images/585239857/n571218917_3111_normal.jpg" 
     ["source"]=> 
     string(59) "&lt;a href=&quot;http://twitter.com/&quot;&gt;web&lt;/a&gt;" 
     ["text"]=> 
     string(114) "postare domande su #stackoverflow è fico perché c'è sempre pronto qualcuno a cazziarti o cmq a far la maestrina" 
     ["to_user"]=> 
     NULL 
     ["to_user_id"]=> 
     NULL 
     ["to_user_id_str"]=> 
     NULL 
     ["to_user_name"]=> 
     NULL 
    } 
    // Snip. 
    ["results_per_page"]=> 
    int(15) 
    ["since_id"]=> 
    int(0) 
    ["since_id_str"]=> 
    string(1) "0" 
} 
+0

謝謝我一直在尋找這個 – 2012-03-15 11:44:20