我有以下代码:
error_reporting(E_ALL);
ini_set("display_errors", 1);
$db = mysqli_connect("db.mysql","user","pwd","db");
$consumersecret = "Cy4qwsC1fdvP62x------BiEQMLwbDUUA";
$consumerkey = "0XCjdxL------lJc---UtA";
$accesstoken = "154823199------QO4L8xfMgpsGHLb-----xTOuUf4WMwY";
$accesssecret = "mOwRu6b34--------------ZRktk3pg";
require_once('tmhOAuth.php');
$connection = new tmhOAuth(array(
'consumer_key' => $consumersecret,
'consumer_secret' => $consumerkey,
'user_token' => $accesstoken,
'user_secret' => $accesssecret,
));
$code=$connection->request('GET', $connection->url('1/statuses/user_timeline'),
array('include_entities' => 'true',
'include_rts' => 'true',
'screen_name'=>'mdibbets',
'count'=>'2'),true);
if ($code == 200) {
$responseData = json_decode($connection->response['response'],true);
var_dump($connection->response['response']);
}
var_dump($connection->response);
我得到的回应如下:
array(4) {
["headers"]=>
array(12) {
["x_ratelimit_limit"]=>
string(3) "150"
["x_ratelimit_remaining"]=>
string(1) "0"
["x_ratelimit_reset"]=>
string(10) "1347001832"
["x_ratelimit_class"]=>
string(3) "api"
["content_type"]=>
string(30) "application/json;charset=utf-8"
["set_cookie"]=>
string(99) "guest_id="v1:134699975230464174"; Expires=Sun, 7-Sep-2014 06:35:52 GMT; Path=/; Domain=.twitter.com"
["status"]=>
string(15) "400 Bad Request"
["x_transaction"]=>
string(16) "ba0517c8728574ad"
["x_frame_options"]=>
string(10) "SAMEORIGIN"
["date"]=>
string(29) "Fri, 07 Sep 2012 06:35:52 GMT"
["content_length"]=>
string(3) "200"
["server"]=>
string(3) "tfe"
}
["code"]=>
int(400)
["response"]=>
string(200) "{"request":"\/1\/statuses\/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets","error":"Rate limit exceeded. Clients may not make more than 150 requests per hour."}"
["info"]=>
array(23) {
["url"]=>
string(121) "https://api.twitter.com/1/statuses/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets"
["content_type"]=>
string(30) "application/json;charset=utf-8"
["http_code"]=>
int(400)
["header_size"]=>
int(450)
["request_size"]=>
int(529)
["filetime"]=>
int(-1)
["ssl_verify_result"]=>
int(0)
["redirect_count"]=>
int(0)
["total_time"]=>
float(0.743177)
["namelookup_time"]=>
float(3.7E-5)
["connect_time"]=>
float(0.184139)
["pretransfer_time"]=>
float(0.555495)
["size_upload"]=>
float(0)
["size_download"]=>
float(200)
["speed_download"]=>
float(269)
["speed_upload"]=>
float(0)
["download_content_length"]=>
float(200)
["upload_content_length"]=>
float(0)
["starttransfer_time"]=>
float(0.743047)
["redirect_time"]=>
float(0)
["certinfo"]=>
array(0) {
}
["redirect_url"]=>
string(0) ""
["request_header"]=>
string(529) "GET /1/statuses/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets HTTP/1.1
User-Agent: themattharris' HTTP Client
Host: api.twitter.com
Accept: */*
Authorization: OAuth oauth_consumer_key="Cy4qwsC1fdvP6--------EQMLwbDUUA", oauth_nonce="0a119b791------604faaf23", oauth_signature="OsHfGZ------wmMApoxNdddD4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1346999751", oauth_token="154823-------gpsGHLb1DMUnxxTOuUf4WMwY", oauth_version="1.0"
"
}
}
是否有一些技巧让Oauth工作,我没有使用?不知怎的,所有关于tmoauth的文档都会产生404,但是它是值得推荐的。
有人可以给我一个如何正确使用tmoauth的指针吗?文档,示例代码,什么?
我正在使用共享虚拟服务器主机,因此Twitter显然会识别来自我的托管公司的其他客户端的IP。
如果有人在没有tmoauth的情况下知道一个记录良好的方法,纯粹的本机php我很满意,但它确实需要很好的文档。
答案 0 :(得分:2)
tmhOauth将其文档放在示例中。示例非常简单,有助于理解代码。你可以在这里找到例子:
https://github.com/themattharris/tmhOAuth-examples
您也可以获得自己的应用程序访问权限,并使用自己的令牌。请检查:https://dev.twitter.com/discussions/631
关于你的代码,你得到400错误,它与404不同。你提出了一个错误的请求。从标题我可以看到你消耗了你的速率限制。你应该等到下一个重置时间。哪个是时代1347001832 =星期五,07九月2012 07:10:32 GMT
作为旁注,您可以使用上周提供的Twitter API 1.1。这给了更多的速率限制。