PHP-приложение, использующее Twitter API, работает с некоторыми учетными записями, а не с другими - PullRequest
1 голос
/ 12 ноября 2008

У меня есть PHP-скрипт, который я написал, чтобы автоматически следить за пользователями, которые публикуют сообщения с определенными условиями. Он работает 100% времени на куче тестовых учетных записей, но затем не работает на той учетной записи, с которой я бы хотел его использовать.

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

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

Index.php

<?php
$url = "http://search.twitter.com/search.atom?q=SEARCHTERM&show_user=true&rpp=100";
$search = file_get_contents($url);

$regex_name = '/\<name\>(.+?) \(/';
preg_match_all($regex_name,$search,$user);
for($i=0;$user[1][$i];$i++)
    {
    $follow = $user[1][$i];
    include("follow.php");
    }
?>

Follow.php

<?php
define('TWITTER_CREDENTIALS', 'username:password');
$url = "http://twitter.com/friendships/create/".$follow.".xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, TWITTER_CREDENTIALS);
$result= curl_exec ($ch);
curl_close ($ch);
?>

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

Ответы [ 2 ]

2 голосов
/ 13 ноября 2008

Для отладки вашего запроса cURL все сказано, но, возможно, вы можете использовать Services_Twitter , который представляет собой пакет, обернутый вокруг Twitter-API. Он обеспечивает довольно надежную обработку ответов.

В настоящее время также поддерживает поиск и дружбу.

Если вы не хотите этого делать, то просто для API поиска в Twitter я бы использовал JSON и сделал бы что-то вроде этого:

<?php
$url    = "http://search.twitter.com/search.json?q=SEARCHTERM&show_user=true&rpp=100";
$search = file_get_contents($url);
if ($search === false) {
    die('Error occurred.');
}
$hits = json_decode($search);
var_dump($hits);
?>

Это меньше разбора, и ext / json доступен в большинстве PHP5 установок.

0 голосов
/ 12 ноября 2008

Попробуйте использовать:

curl_setopt($ch,     CURLOPT_VERBOSE, 1);

и посмотрите, поможет ли это выявить проблему.

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