我基本上是想在我的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
有关导致错误的原因的任何想法?或者有什么建议可以更好地做到这一点?
感谢。
答案 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。