- ベストアンサー
TwitterAPIで公式RTした結果を取得する方法
- TwitterAPIを使用して、公式RTした結果を取得する方法をご紹介します。
- Google Apps Scriptを使って、特定の単語を検索して自動で公式RTするbotを作成しましたが、RT後の結果を取得する方法についてお困りです。
- また、リツイート済みのものをリツイートしようとするとエラーが発生する問題にも対処方法をご教示ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず、使用しているライブラリは何でしょうか?TwistOAuthに「OAuthRequest」というメソッドは存在しないので、おそらくtwitteroauthを使用されているんだと思いますが、例外をTwistExceptionとしてキャッチするのはもちろんTwistOAuthの独自仕様です。twitteroauthはそもそも例外処理に対応していません。例外処理を行いたいのであれば、一貫してTwistOAuthを使用してください。 Examples/Details/FAQなどはこちらで↓ https://github.com/mpyw/TwistOAuth 【例】(全角スペースでインデントしています) <?php // ライブラリをロード require 'TwistOAuth.php'; // レスポンスはテキストで返す header('Content-Type: text/plain; charset=utf-8'); // インスタンスを生成 $to = new TwistOAuth(...省略...); // 検索を実行し、statusesをforeachにかける try { foreach ($to->get('search/tweets', ['q' => 'foo'])->statuses as $status) { // リツイート済は除外 if ($status->favorited) { continue; } // リツイートを実行 try { // リツイート後に得られた自分のツイートのステータスIDを表示 echo 'Retweeted: ' . $to->post('statuses/retweet/' . $status->id_str)->id_str . PHP_EOL; } catch (TwistException $e) { // リツイート失敗時はエラーメッセージを表示 echo $e->getMessage() . PHP_EOL; } } } catch (TwistException $e) { // 検索失敗時はエラーメッセージを表示 echo $e->getMessage() . PHP_EOL; }
お礼
あ、お礼はこちらに書くんですね。 すいません、補足の方に書いてしまいました。 質問をするのも初心者なので…… 再度になりますが、回答くださりありがとうございます。 とても丁寧にお返事いただけて感謝しております。 しかし、オブジェクト指向のTwistOAuthに書き換えるのは、難易度が急上昇で、初心者の私にはちょっとしんどいです…… わざわざコードまで書いてくださったのに、本当にすいません。 今の状態だと、RTされれば動いてるのがわかるのですが、されてないときに不具合が出ているのか、単に何も検索されなかっただけなのかわからないので、ログを出したかったのですが… 素人には難しいです(-_-;) 御親切に教えてくださってありがとうございました<(_ _)>
補足
返答ありがとうございます。 TwistException というのは、TwistOAuthの独自仕様なんですね。 お察しの通り、twitteroauthを使っています。 ログが出ない以外は特に問題なく動いているので、今からTwistOAuthを勉強して全部書き換えるのはちょっとツラいです…… 例外処理は外すことにします。 わざわざコードを書いてくださったのに、すいません(>_<)