使用CURL更新Twitter状态

时间:2011-01-05 06:40:04

标签: twitter status

我在通过用户名和密码更新Twitter状态时遇到问题。

以下是代码:

$username = 'username';
$password = 'password';
$message = 'Testing';
$url = 'http://twitter.com/statuses/update.xml';

$curl_handle = curl_init();

curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
 curl_setopt($curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); //basic authentication
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);

curl_close($curl_handle);

echo $buffer;

这不仅适用于一个用户,因此我无法使用OAuth(意味着使用消费者密钥和其他令牌)。我已经尝试过这个:http://www.1stwebdesigner.com/tutorials/how-to-update-twitter-using-php-and-twitter-api/但我无法传递多个用户的用户名和密码来更新多个推特状态。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:3)

您将无法通过curl更新用户名和密码来更新Twitter状态 - 几个月前(2010年8月)基本身份验证为deprecated/turned off by Twitter。第三方应用程序的更新现在必须通过oauth身份验证来完成。

顺便说一下 - 考虑到你正在使用PHP - 我建议使用PEAR Services_Twitter包或the Zend equivalent

答案 1 :(得分:1)

无论您拥有多少用户,都无法使用用户名和密码来更新Twitter状态。这不再有效。它已被关闭。您必须使用OAuth。 OAuth允许多个用户登录您网站上的Twitter。当他们这样做时,您会获得他们的OAuth令牌的副本。然后,您可以使用这些令牌将推文发送到他们的帐户。您仍然可以找到使用基本身份验证在线执行此操作的文档,但所有这些都已过时。 Twitter上不再提供基本身份验证。

答案 2 :(得分:0)

首先,每次更新用户状态时都必须使用cookie,然后在每次成功状态更新后销毁cookie。 其次,将此条件置于循环中以更新您不会使用的所有用户。 看到这可能对您有所帮助: http://blancer.com/tutorials/73877/how-to-authenticate-users-with-twitter-oauth/