PHP cURL获得最后一条推文

时间:2011-07-27 15:54:10

标签: php twitter curl

我基本上是想在我的Twitter页面上发布最后一条推文并回复它,遇到这个表面上应该做我想要的代码,但它给了我一个错误:

$user = 'TwitterUserName';
$pass = 'password';

$tweet = curl_init("https://twitter.com/statuses/user_timeline.xml");

curl_setopt($tweet, CURLOPT_USERPWD, $user.':'.$pass);
curl_setopt($tweet, CURLOPT_RETURNTRANSFER,1);

$out = curl_exec($tweet);

$out = new SimpleXMLElement($out);

echo $out->status[0]->text;

错误:

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in H:\xampp\htdocs\tests\twit.php:13 Stack trace: #0 H:\xampp\htdocs\tests\twit.php(13): SimpleXMLElement->__construct('') #1 {main} thrown in H:\xampp\htdocs\tests\twit.php on line 13

有关导致错误的原因的任何想法?或者有什么建议可以更好地做到这一点?

感谢。

2 个答案:

答案 0 :(得分:1)

要返回的XML字符串无效。验证获取的字符串实际上是XML(并且有效!)。

答案 1 :(得分:0)

您不能将基本身份验证用于Twitter的REST API,您必须将OAuth用于其API。对于twitter oauth上的一些基本资源:https://dev.twitter.com/docs/api#oauth

由于您使用的是PHP,我建议您查看亚伯拉罕的oauth库,这是第一个被广泛使用的库:https://github.com/abraham/twitteroauth但是有许多非常有用的库用于许多不同的语言: https://dev.twitter.com/docs/twitter-libraries

这是一篇关于从基本的auth转变为oauth的好文档:https://dev.twitter.com/docs/auth/moving-from-basic-auth-to-oauth

除此之外,我相信JSON已成为API响应的更广泛使用标准。只要您的PHP版本具有所有JSON函数(> = 5.2.0,IIRC),我就会将您的URL从* .xml更改为* .json。