我想将推文下载到我自己的数据库中。我想在脚本中提供#subject,然后下载最新的推文。我想用php
这样做我只能找到你可以监控的网站,但我需要一个脚本。有谁知道吗?
重要的是我可以下载邮件,作者和位置。 我不熟悉twitter所以我不确定这是否可行。
谢谢,
托比
答案 0 :(得分:1)
这将涉及使用作为RESTful Web服务实现的Twitter API。主要是你将使用Twitter search API。
使用Twitter API和搜索API : 您需要的第一件事是您的搜索查询,如果您还不知道它,请使用search page。在搜索URL的末尾,将其用作搜索API的参数。例如,搜索#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) "<a href="http://twitter.com/">web</a>"
["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"
}