使用Twitter API的PHP应用程序适用于某些帐户,而非其他帐户

时间:2008-11-12 03:13:07

标签: php curl twitter

我有这个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);
?>

快速更新:结果问题出现在Twitter的末端 - 有问题的帐户比某些原因施加的API限制更严格。我没有将任何回答标记为答案,因为它是一个相当特殊的例子。

2 个答案:

答案 0 :(得分:2)

要调试你的cURL请求已经说了所有内容,但也许你可以使用Services_Twitter,这是一个包裹在Twitter-API周围的软件包。它提供了非常强大的响应处理。

目前也支持搜索和友谊。

如果您不想这样做,那么仅针对Twitter-Search API,我会使用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);
?>

解析较少,大多数 PHP5安装中都可以使用ext/json

答案 1 :(得分:0)

尝试使用:

curl_setopt($ch,     CURLOPT_VERBOSE, 1);

并查看它是否有助于识别问题。