2008-11-12 74 views
1

我有这个PHP脚本,我写这个脚本会自动关注用特定术语发布消息的用户。它可以在一大堆测试账户上百分之百地工作,但是对于我想要使用的帐户无效。使用Twitter API的PHP应用程序在一些帐户上工作,而不是其他人

我检查了帐户的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的限制更紧了因为某些原因。我并没有将答案标记为答案,因为这是一个相当特殊的例子。

回答

0

尝试使用:

curl_setopt($ch,  CURLOPT_VERBOSE, 1); 

来,看看它是否有助于确定问题。

2

要调试你的cURL请求,一切都已经说过了,但也许你可以使用Services_Twitter,这是一个包裹在Twitter-API中的包。它提供了非常强大的响应处理。

当前还支持搜索和友谊。

如果你不想这样做,那么只为Twitter的搜索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安装。

+0

直到,感谢您向我展示了json_decode函数!这比起我尝试过的XML解析库更容易启动和运行。 – Evan 2008-11-17 23:15:31

相关问题