Почему этот скрипт Twitter API не работает? - PullRequest
1 голос
/ 31 октября 2010

Я получаю сообщение об ошибке из этого скрипта Twitter, из-за которого остальная часть страницы не загружается.Не уверен, почему вдруг это происходит, когда он функционировал должным образом в течение некоторого времени.

Сценарий выглядит так, и он тянет пользователей текущий статус:

<?php  
$response = new SimpleXMLElement('http://twitter.com/users/show/tuscaroratackle.xml',NULL,TRUE);  
echo $response->status->text.'';  
?>

Вот еще один постчто я пытался выяснить ответ на другую ошибку, которая указала мне на эту ошибку Twitter.

Вы можете увидеть это здесь в нижнем колонтитуле или на скриншоте вывода: http://cl.ly/33IZ.

1 Ответ

2 голосов
/ 31 октября 2010

Соответствующая ошибка (которая отображается в нижнем колонтитуле страницы, на которую вы ссылались):

Warning: SimpleXMLElement::__construct(http://twitter.com/users/show/tuscaroratackle.xml) [simplexmlelement.--construct]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home5/tuscaror/public_html/footer.php on line 47

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: I/O warning : failed to load external entity "http://twitter.com/users/show/tuscaroratackle.xml" in /home5/tuscaror/public_html/footer.php on line 47

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home5/tuscaror/public_html/footer.php:47 Stack trace: #0 /home5/tuscaror/public_html/footer.php(47): SimpleXMLElement->__construct('http://twitter....', 0, true) #1 /home5/tuscaror/public_html/index.php(119): include('/home5/tuscaror...') #2 {main} thrown in /home5/tuscaror/public_html/footer.php on line 47

Первое предупреждение сообщает о том, что произошло: «HTTP-запрос не выполнен! HTTP / 1.1 400 Bad Request».

Итак, по какой-то причине ваш сервер отказывает при отправке HTTP-запроса в Twitter для получения документа "http://twitter.com/users/show/tuscaroratackle.xml". Код возврата 400 Bad Request.

Я только что попробовал этот же запрос из своего веб-браузера, и он работал нормально, поэтому либо twitter временно «вышел на ланч» (что происходит время от времени), либо что-то уникальное в конфигурации сети вашего сервера. Моим первым предположением будет то, что где-то вверх по течению от вашего сервера кто-то установил HTTP-прокси, который (по неизвестной причине) блокирует ваш запрос.


Вот что твиттер должен сказать об этом :

400 Bad Request: The request was invalid.  An accompanying error message 
will explain why. This is the status code will be returned during rate limiting.

Вот твиттер-страница об ограничении скорости . Я подозреваю, что это ваш преступник. Если вы думаете иначе, тогда вы можете попытаться извлечь документ в виде строки и проверить его до , попробуйте проанализировать его, чтобы увидеть, что это за сообщение.

Это быстро и грязно, но оно получит сообщение, чтобы вы могли видеть, что происходит:

$str = file_get_contents('http://twitter.com/users/show/tuscaroratackle.xml');
echo $str;

, который может не работать из-за кода ответа 400. если это так, вам нужно будет использовать php curl , чтобы получить неотобранное тело ответа.

удачи!

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