PHP cURL получить последний твит - PullRequest
0 голосов
/ 27 июля 2011

Я в основном пытаюсь получить последний твит на своей странице в Твиттере и вывести его на экран, наткнулся на этот код, который якобы должен делать то, что я хочу, но он выдает мне ошибку:

$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 ]

1 голос
/ 27 июля 2011

Возвращаемая строка XML недействительна.Убедитесь, что выбранная строка на самом деле является XML (и верна!).

0 голосов
/ 28 июля 2011

Вы не можете использовать базовую аутентификацию для REST API Twitter, вы должны использовать OAuth для их API. Для некоторых основных ресурсов на Twitter oauth: https://dev.twitter.com/docs/api#oauth

Поскольку вы используете PHP, я бы посоветовал взглянуть на oauth-библиотеку abraham, которая была первой, которая стала широко использоваться: https://github.com/abraham/twitteroauth Но есть множество очень полезных библиотек для разных языков. : https://dev.twitter.com/docs/twitter-libraries

А вот хороший документ по переходу с базовой аутентификации на oauth: https://dev.twitter.com/docs/auth/moving-from-basic-auth-to-oauth

Помимо этого, я считаю, что JSON стал более широко используемым стандартом для ответов API. Пока ваша версия PHP имеет все функции JSON (> = 5.2.0, IIRC), я бы изменил ваш URL с * .xml на * .json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...