1

我有一个我编写的 PHP 脚本,用于自动关注发布带有特定条款的消息的用户。它在一堆测试帐户上 100% 的时间有效,但在我想使用它的帐户上无效。

我已经检查了帐户的 API 速率限制,并且在界限内。我还验证了用户名和密码是否正确。如果我只将用户名和密码更改为另一个帐户,它将起作用,但是当(正确)更改回主帐户时,没有任何反应。我完全感到困惑。有没有人遇到过这个?

我包括下面使用的两个文件。如果还有其他有用的信息,请告诉我,如果可以,我会提供。谢谢!

索引.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");
    }
?>

关注.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 限制更严格。我没有将任何响应标记为答案,因为它是一个相当特殊的实例。

4

2 回答 2

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);
?>

它的解析更少,并且ext/json大多数PHP5 安装中都可用。

于 2008-11-13T13:52:33.950 回答
0

尝试使用:

curl_setopt($ch,     CURLOPT_VERBOSE, 1);

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

于 2008-11-12T18:34:47.303 回答