stefafafan の fa は3つです

"すてにゃん" こと id:stefafafan のブログです

Twitter API v2 と Google Apps Script で定期実行で検索結果取得するやつ作るときのメモ

100万番煎じという感じの記事だけど、Twitter API v2 は初めて触ったのでメモとしてちょっと書いておきます。

Twitter API Playgroundが便利

TwitterのDeveloper Portalに入ると、API Playground使ってみてねと言われて以下のURLに飛ぶので、ここでどのAPIをどのように使うか実験できて便利でした。
oauth-playground.glitch.me

検索API

今回使いたかったのがこれです。
developer.twitter.com

こういう風にAPI Playgroundで検索クエリを入れて試したりできて、curlのリクエスト例とかもついでに取得できて便利です。

Twitter API Playgroundの様子

検索クエリの書式は普通のTwitterの検索と似てるけど、一部Operatorが違って、このへんを参考に組み立てると良いです。
developer.twitter.com

あとページング用にsince_idというパラメータを指定できるので、定期実行の際は最後に取得したツイートのIDを保持しておいて次回はそれ以降のものを取得するようにできます。

googleworkspace/apps-script-oauth2 が便利

GASでTwitter API v2 を叩いて認証した上で検索APIを定期実行するぞ!と思ったときに認証部分が一番面倒だけど、googleworkspace/apps-script-oauth2を使うと楽でした。ちなみにこれとは別にDeveloper Portalで自分でアプリケーションを作って、OAuth 2.0を有効化し、リダイレクト先をGASのURLにしたり、CLIENT_IDとCLIENT_SECRETを取得しておく必要はあります。

github.com

このRepositoryのsamples以下にサービスごとにサンプルコードが沢山あるので、Twitter.gsを探してこれを参考にGASを書き始めるとOAuth 2.0 の認証ができるようになります。
github.com

users.readとかtweet.readとか呼び出すAPIに応じて権限を調整します。ちなみに上記のサンプルコードではCLIENT_IDとCLIENT_SECRET直書きみたいになっていたので自分はScript Propertiesに入れるようにしました。
developers.google.com

Script Propertiesのバグ

自分はScript Properties使った際に以下のバグを踏んだ。登録したプロパティをUIから削除しようとしても削除されないということがあるらしく、その場合はそのプロパティを削除するだけのコードをちょろっと書いて1度実行する必要があった……。
Script properties cannot be deleted via UI [173495423] - Visible to Public - Issue Tracker

こちらからは以上です。