如何通过“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