2013-05-24 4 views
0

У меня есть твиттер-бот, где он ищет @mention и отвечает пользователю в зависимости от того, что говорит пользователь.Twitter bot using Oauth

Это не работает нормально, пока на этой неделе, когда я начал получать эту ошибку:

Warning: Invalid argument supplied for foreach() in /home/reportax/public_html/reportaxi/twitterbot/config.php on line 14

Я урезанная код на самой основной форме, которая является поиск для @mention, а затем чирикать что-то когда он находит это, но я все еще получаю эту ошибку. Есть идеи?

Как я уже говорил, это работало до этой недели, поэтому я знаю ключ потребителя, секрет, и все в порядке.

вот код:

<?php 
require_once('twitteroauth.php'); 

define('CONSUMER_KEY', 'MYKEY'); 
define('CONSUMER_SECRET', 'MYSECRET'); 
define('ACCESS_TOKEN', 'MYTOKEN'); 
define('ACCESS_TOKEN_SECRET', 'MYTOKENSECRET'); 

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 
$twitter->host = "http://search.twitter.com/"; 
$search = $twitter->get('search', array('q' => '@repor_taxi', 'rpp' => 15)); 

$twitter->host = "https://api.twitter.com/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)); 
} 

? 

какие-либо идеи?

ответ

0

У меня была та же проблема. Вам необходимо обновить свой код для twitter API 1.1.

<?php 
require_once('twitteroauth.php'); 

define('CONSUMER_KEY', 'MYKEY'); 
define('CONSUMER_SECRET', 'MYSECRET'); 
define('ACCESS_TOKEN', 'MYTOKEN'); 
define('ACCESS_TOKEN_SECRET', 'MYTOKENSECRET'); 

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 

/*The search has change a little bit */ 

/* Remove this 2 lines */ 
/* $twitter->host = "http://search.twitter.com/"; */ 
/* $search = $twitter->get('search', array('q' => '@repor_taxi', 'rpp' => 15)); */ 

/* Put this new line */ 
$search = $twitter->get("https://api.twitter.com/1.1/search/[email protected]_taxi&count=15"); 

/* The Search URL is https://api.twitter.com/1.1/search/tweets.json?q= */ 
/* Everything after is parameter */ 
/* You can check parameters list here: https://dev.twitter.com/docs/using-search */ 

/* Twitter host updated too */ 
$twitter->host = "https://api.twitter.com/1.1/"; 

foreach($search as $tweet) { 
    ...  
?> 

Надеюсь, это может вам помочь. Удачи.