• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TwitterAPIで公式RTした結果を取得したい)

TwitterAPIで公式RTした結果を取得する方法

このQ&Aのポイント
  • TwitterAPIを使用して、公式RTした結果を取得する方法をご紹介します。
  • Google Apps Scriptを使って、特定の単語を検索して自動で公式RTするbotを作成しましたが、RT後の結果を取得する方法についてお困りです。
  • また、リツイート済みのものをリツイートしようとするとエラーが発生する問題にも対処方法をご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.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; }

sinmai1000
質問者

お礼

あ、お礼はこちらに書くんですね。 すいません、補足の方に書いてしまいました。 質問をするのも初心者なので…… 再度になりますが、回答くださりありがとうございます。 とても丁寧にお返事いただけて感謝しております。 しかし、オブジェクト指向のTwistOAuthに書き換えるのは、難易度が急上昇で、初心者の私にはちょっとしんどいです…… わざわざコードまで書いてくださったのに、本当にすいません。 今の状態だと、RTされれば動いてるのがわかるのですが、されてないときに不具合が出ているのか、単に何も検索されなかっただけなのかわからないので、ログを出したかったのですが… 素人には難しいです(-_-;) 御親切に教えてくださってありがとうございました<(_ _)>

sinmai1000
質問者

補足

返答ありがとうございます。 TwistException というのは、TwistOAuthの独自仕様なんですね。 お察しの通り、twitteroauthを使っています。 ログが出ない以外は特に問題なく動いているので、今からTwistOAuthを勉強して全部書き換えるのはちょっとツラいです…… 例外処理は外すことにします。 わざわざコードを書いてくださったのに、すいません(>_<)

関連するQ&A