【问题标题】:Twitter bot using Oauth使用 Oauth 的 Twitter 机器人
【发布时间】:2013-06-14 03:57:36
【问题描述】:

我有一个 twitter 机器人,它会搜索 @mention 并根据用户所说的内容回复用户。

直到本周我开始收到此错误时,它一直运行良好:

警告:在第 14 行的 /home/reportax/public_html/reportaxi/twitterbot/config.php 中为 foreach() 提供的参数无效

我将代码简化为最基本的形式,即搜索@提及,然后在找到它时发推文,但我仍然收到此错误。有什么想法吗?

正如我之前提到的,这在本周之前一直运行良好,所以我知道消费者密钥、秘密以及一切正常的东西。

代码如下:

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

?

有什么想法吗?

【问题讨论】:

    标签: twitter oauth twitter-oauth


    【解决方案1】:

    我遇到了同样的问题。您需要更新 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/tweets.json?q=@repor_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) {
        ...     
    ?>
    

    我希望这可以帮助你。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2020-08-09
      • 2013-06-03
      • 2015-04-13
      • 2017-08-13
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多