0

Twitter は、ツイートに RT プレフィックスを使用するのではなく、リツイートされたツイートにリツイートされたサインを提供するようになりました。Twitter ボットでリツイートされたツイートにこれが表示されるようにしたいと思います...つまり、元のユーザー情報は twitter.com/user のフィードに埋め込まれています。

これは私がこれまでに持っているコードです(API 1.1を使用):

    $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
    $twitter->host = "http://search.twitter.com/";
    $search = $twitter->get('search', array('q' => '-escort -RT -ADRTBot #abudhabi', 'count' => 5));
    $twitter->host = "https://api.twitter.com/1.1/";
    foreach($search->results as $tweet) {
        $status = $tweet->text;
        if(strlen($status) > 140) $status = substr($status, 0, 139);
        $twitter->post('statuses/retweet/$tweet->id', array('status' => $status));
        print "STATUS: $tweet->id $status<br>";
        }

どんなアイデアでも大歓迎です!!


上記は機能しません...そして、新しいAPI 1.1を使用してリツイートするのにまだ苦労しています。

ここに私がこれまでに持っている改訂されたコードがあります:

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

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

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

    $tweets = $twitter->get("https://api.twitter.com/1.1/search/tweets.json?q=-escort%20-RT%20-ADRTBot%20abudhabi&count=5");
    $twitter->host = "https://api.twitter.com/1.1/";
    foreach($tweets as $tweet) {
    foreach($tweet as $chirp) {
        $id = $chirp->id_str;
//testing that data coming through... and it is
        echo "<br>THIS IS THE ID: $id<br>";
        echo "statuses/retweet/$id.json<br>";
        echo "$chirp->text<br>";

        $twitter->post('https://api.twitter.com/1.1/statuses/retweet/$id.json');
    }
    }
    echo json_encode($tweets);

    ?>

しかし、それはTwitterに投稿されていません...何が欠けていますか?

どうもありがとう、

R

4

1 に答える 1

0

元のコーダーからコードをそのままにしておくべきでした。2 日前まで、このボットは実際に機能していましたが、API 1.1 での Twitter の更新により、ボットが機能しなくなりました。質問に答えるには、search.twitter.com のプロパティが原因だと思います

[コード]

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' => '#abudhabi', 'another hashtag here', 'another keyword here', '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!";

[/コード]

于 2013-06-07T14:23:37.167 に答える