如何通過「http basic auth」使用twitter api?如何通過「http basic auth」使用twitter api?
我想我應該使用「消費者鑰匙」!因爲twitter給了你每小時的限制請求率,如果我沒有使用我的用戶密鑰,他們如何計算我的請求?
如何通過「http basic auth」使用twitter api?如何通過「http basic auth」使用twitter api?
我想我應該使用「消費者鑰匙」!因爲twitter給了你每小時的限制請求率,如果我沒有使用我的用戶密鑰,他們如何計算我的請求?
我認爲他們會計算來自同一IP的請求 - 但我沒有再檢查一次。
即使動態IP地址對於一個會話來說也是靜態的,並且在沒有任何其他識別信息的情況下,唯一可以區別於其他用戶的是IP地址。
正如其他海報所說 - 有更好的方法,如果你有一把鑰匙。
已驗證的API GET請求會計入您的用戶帳戶的計數。
未經身份驗證的API GET請求(由某些方法允許)會計入您的IP地址的計數。
POST請求不受速率限制。
我最近寫了一些PHP張貼到Twitter 這是它的工作部分:使用回調從我們的SVN服務器http://twitter.com/fmsvn:
$message = 'A new revision (#' . $data['revision'] . ') was commited by ' . $data['author'] . ': ' . $data['message'] . "";
$message = substr($message, 0, 140);
$content = 'status=' . urlencode($message);
$packetString = "POST /statuses/update.xml HTTP/1.1\r\n";
$packetString .= "Authorization: Basic " . base64_encode($username . ":" . $password) . "\r\n";
$packetString .= "Content-Length:" . strlen($content) . "\r\n";
$packetString .= "HOST: twitter.com\r\n";
$packetString .= "\r\n" . $content . "\r\n";
$sock = fsockopen('twitter.com', 80);
fwrite($sock, $packetString);
//This is some logging, to a local file so I can monitor local what's going on
$response = fread($sock, 10240);
fwrite($fh, $packetString . "\r\n\r\n\r\n" . trim($response) . "\r\n\r\n\r\nD:\r\n" . $d);
fclose($fh);
你可以看到它在這裏的行動我將SVN消息發佈到項目Twitter Feed。
無論何時您想要使用HTTP基本身份驗證,如果您想忽略實際的實現和HTTP頭,只需使用cURL即可。下面是PHP一個簡單的例子,捲曲在其他語言版本太:
<?php
$ch = curl_init();
// Sets the URL cURL will open
curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/user_timeline.xml?screen_name=al3x');
// Here's the HTTP auth
// The 3rd argument is your Twitter username and password joined with a colon
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
// Makes curl_exec() return server response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Lately the Twitter API expects an Expect header. It's a mystery
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
// And here's the result XML
$twitter_xml = curl_exec($ch);
curl_close($ch);
?>
然後$twitter_xml
將包含al3x的公共時間軸的XML。就速率限制而言,ceejayoz已經很好地回答了。
$twitter = file_get_content("http://user:[email protected]/blabla");
爲什麼向下票呢?我說我不確定,但@ceejayoz已經證實了它。 – ChrisF 2009-05-22 08:07:47
謝謝,我也認爲他們數IP的請求,我不知道誰投你的答案,但我會放棄vote.thanks – ahmed 2009-05-22 15:20:06
我不介意被拒絕投票 - 但它會很高興知道爲什麼所以我可以在錯誤的地方糾正我的答案。 – ChrisF 2009-05-22 15:22:23