2011-01-05 66 views
0

我通过用户名和密码更新Twitter状态时遇到问题。使用CURL更新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/但我不能传递多个用户的用户名和密码来更新多个twitter状态。

请帮我解决这个问题。

回答

0

首先,你必须使用的cookie每次更新用户状态时,那么每个成功的状态更新后导致的cookie。 其次,把这个条件放在循环中来更新你所不想要的所有用户。 见这可以帮助你: http://blancer.com/tutorials/73877/how-to-authenticate-users-with-twitter-oauth/

+0

当我已经使用这个代码卷曲,然后它会显示错误:“不支持基本身份验证”,让你能帮助我在此。 – Anjara 2011-01-05 07:37:26

3

您将无法通过经卷曲的用户名和密码的更多更新的Twitter状态 - 基本身份验证为deprecated/turned off by Twitter几个月前(2010年8月)。第三方应用程序的更新等现在必须通过oauth认证来完成。顺便说一句 - 考虑到你使用的PHP - 我建议使用PEAR Services_Twitter包或the Zend equivalent

+0

感谢您的信息。 我查看了你给我的两个链接。但我想动态地使用他们的用户名和密码更新多个用户的twitter状态。 我将有不同用户的twitter用户名和密码。那么网上有没有什么帮助可以做到这一点? – Anjara 2011-01-05 10:31:22

+1

因此,通过一个数组或某些循环... – kguest 2011-01-05 13:40:13

1

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