如何使用PHP在Twitter上发推文

时间:2011-01-12 05:46:19

标签: php twitter

我如何通过我的网站在Twitter上发推文?我正在使用PHP脚本。我从我的网站发送的任何推文都应该更新我的推特账号。我使用以下代码,但它没有在我的Twitter帐户中更新:

// Set username and password
$username='myusername';
$password='*********';
// The message you want to send
$message = 'Nice to c all again.Have a nice day..';
// The twitter API address
$url='http://twitter.com/statuses/update.xml';
// Alternative JSON version
// $url = 'http://twitter.com/statuses/update.json';
// Set up and execute the curl process
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
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);
// check for success or failure
if (empty($buffer)) {
    echo 'Try again';
} else {
    echo 'success';
}

此脚本返回成功消息,但是当我查看我的Twitter帐户时,没有找到推文。

可能是什么问题?

3 个答案:

答案 0 :(得分:18)

您正在尝试使用基本身份验证(用户名和密码)发送推文。这不再允许。网上有很多这样的例子,但是去年八月推特关闭了它。您现在必须使用OAuth进行身份验证。

答案 1 :(得分:0)

使用Twitter发送推文,您需要 post_authenticity_token 以及 用户名 密码 < / strong>即可。 这个令牌可以通过使用curl获取(在您使用curl登录后)从您的个人资料页面获取。我尝试了卷曲,并能够使用卷曲发推文。你可以找到我的代码(虽然它是在bash脚本中,它可以很容易地移植到php,因为它们都使用 curl http://pastebin.com/a5eBcEeP

答案 2 :(得分:0)

您可以找到支持OAUTH的PHP库列表,您可以使用PHP编写推文函数和Twitter API的1.1版本: https://dev.twitter.com/docs/twitter-libraries

tmhOAuth可能是我最喜欢的。