PHP Twitter Bot(ConceptScript)

时间:2013-06-07 12:39:27

标签: php api twitter bots

Twitter已将其脚本基础知识从API 1.0更改为API 1.1,使事情变得更加困难。

正在使用的原始API 1.0代码是

[代码]

require_once('twitteroauth.php');

define('CONSUMER_KEY', '//');
define('CONSUMER_SECRET', '//');
define('ACCESS_TOKEN', '//');
define('ACCESS_TOKEN_SECRET', '//');


$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$twitter->host = "http://search.twitter.com/";
$search = $twitter->get('search',array('q' => 'from:eurogamer, OR from:nintendolife, OR from:outsidexbox, OR from:xbox, OR from:OXMUK, OR from:playstationEU, OR from:gamespotuk', 'rrp' => 4));


$twitter->host = "https://api.twitter.com/1.1/";
foreach($search->results as $tweet) {
$status = 'RT @'.$tweet->from_user.' '.$tweet->text;
if(strlen($status) > 140) $status = substr($status, 0, 139);
$twitter->post('statuses/update', array('status' => $status));
}

echo "Success! Check your twitter bot for retweets!";

[/代码]

现在一个用户非常有帮助,并试图破解API 1.1配置,但尝试不起作用

API 1.1代码尝试

[代码]

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$twitter->host = "https://api.twitter.com/1.1/";
$search = $twitter->get('search/tweets',
                    array('q' => 'from:eurogamer OR from:nintendolife OR from:outsidebox',
                          'count' => 4)
                   );

$twitter->host = "https://api.twitter.com/1.1/";
foreach($search->results as $tweet) {
$status = 'RT @'.$tweet->from_user.' '.$tweet->text;
if(strlen($status) > 140) $status = substr($status, 0, 139);
$twitter->post('statuses/update', array('status' => $status));
}

echo "Success! Check your twitter bot for retweets!";

[/代码]

所以我试着用自己的想法来解决这个问题我昨晚想出了用上述代码的基础知识来征服API 1.1系统,但仍然没有成功

[代码]

require_once('twitteroauth.php');

define('CONSUMER_KEY', '//');
define('CONSUMER_SECRET', '//');
define('ACCESS_TOKEN', '//');
define('ACCESS_TOKEN_SECRET', '//');
$notweets = 4;


$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=%40eurogamer%20%40nintendolife%20%40outsidexbox%20%40xbox%20%40OXMUK%20%40playstationEU%20%40gamespotuk."&count=".$notweets);


$twitter->host = "https://api.twitter.com/1.1/";
foreach($tweets as $tweet) {
$status = 'RT @'.$tweet->from_user.' '.$tweet->text;
if(strlen($status) > 140) $status = substr($status, 0, 139);
$twitter->post('statuses/update', array('status' => $status));
}


echo "Success! Check your twitter bot for retweets!";

[/代码]

上面这个特殊的概念确实有错误Parse错误:语法错误,第12行意外'='

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解析错误源于......

$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=%40eurogamer%20%40nintendolife%20%40outsidexbox%20%40xbox%20%40OXMUK%20%40playstationEU%20%40gamespotuk."&count=".$notweets);

应该是......(注意URL的结尾)

$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=%40eurogamer%20%40nintendolife%20%40outsidexbox%20%40xbox%20%40OXMUK%20%40playstationEU%20%40gamespotuk&count=".$notweets);