■実現したいこと
- discordのコミュニティ内で、特定の複数Twitterアカウントのツイート通知をdiscordに流したい
- 無料が良い
- なるべくオンタイムで通知してほしい
- コードでもGUIでも特に指定なし
■処理サマリー
- twitter-apiのセットアップ
- 取得したBearerTokenを使用してリクエスト
- データがあればDiscordに通知を投げる
■事前準備
GASについて調べた
- 定期実行のやり方
- コード記載
- 左側時計アイコン(トリガー) > トリガーを追加 > 呼び出したい処理を選択&実行間隔選択
- test実行
- デプロイではなく、デプロイをテストで処理をテスト実行出来る
■内容
1. Twitter API キーの取得
以下記事を参考に。
https://di-acc2.com/system/rpa/9688/
2. authentication 設定
2-1. developer.twitter.comのdashboard画面のUser authentication settingsで認証の設定をする
- callbackUrl
- WebsiteUrl & Terms of service & Privacy policy
- 自分のTwitterのプロフィールページ
2-2. 発行されたBarerTokenをコピーする
3. コードをコピペする
こちらにコードが載ってます。
■詰まりポイント
最初はTwetterWebService + OAuth1の記事を参考に実装してたが、よくわからんエラーが頻発して諦めた
- こちらの記事を参考に最初試した
- が、API自体が結構updateかかってるから?サクッといかなかったので別のアプローチで実現した
Tweet検索時のreply&retweetの弾き方がぱっと見わからなかった
Matches on Retweets that match the rest of the specified rule. This operator looks only for true Retweets (for example, those generated using the Retweet button). Quote Tweets will not be matched by this operator.
Example: data @twitterdev -is:retweet
- githubのissueの検索とかと同様で、-をつけるつけないで切り替えられるのに気づくのに時間がかかった
■参考にしたサイト
- リクエスト関連のヒント
- discord投稿関連
最後に
背景としては・・
- 自社でやっているdiscordサーバーに自社に関連するメンバーのTweet通知を飛ばしたいなと思ったから
- 話のネタにもなるし、コミュニケーションを活発させる1つの材料になったらなと
って思ってサクッと実装しようと思いました。