4ensiX

4ensiX

FPと言ったものはFPを選んだが表示はTPになっていることに気づいた。

twitterのキーワード検索結果を割とタイムリーに[slack/discord]botで通知する

いつもと全く毛色は異なるが、せっかく調べたのでまとめておく。

プロローグ

twitterのキーワード検索をbotに通知して貰いたいと考えていたのが始まりである。今までtwitterハッシュタグの検索をどうにかtwitterを開かずに観測したいと思っていたが、RT botを作ってくれるような有名なサービスは無くなったようだし、twitter apiをサーバで動かすしか無いと思っていた。
しかし、IFTTTというサービスを利用すればtwitter api無しで! 無料で! 情報の方から寄ってくる生活を体験することができる。

slack botの方は上手くいっていないので、webhookではなくIFTTTで提供されているslackへの投稿を利用した方が良さそうです。(検証中)

bot作成

slack/discordのwebhookを作成

これを行うにはdiscordサーバーの管理者である必要があるので、個人で管理できる場を用意する。
slackの方は管理者ではない立場でめちゃくちゃしたことが無いので、管理者ではない立場で可能かどうかは未検証。

slackの場合

https://api.slack.com/appsにアクセスし、アプリを作成を選択。
アプリ名,ワークスペースを指定してアプリを作成。
機能一覧の[Incoming Webhook]を選択し、この機能を[ON]にする。
webhookを追加すると、botに投稿させるチャンネルを指定した後にwebhookのURLのコピーが可能になる。

参考

Slack での Incoming Webhook の利用 | Slack

slackのIncoming webhookが新しくなっていたのでまとめてみた - Qiita

discordの場合

[サーバの設定]や[チャンネルの設定]にある[ウェブフック]の項目にある[ウェブフックの作成]で簡単に作成する。
botの名前、botの投稿するチャンネルを指定して作成する。
作成後は、ウェブフックのそれぞれのbotの編集からwebhookのURLをチェックできる。

参考
タイトル: Webhooksへの序章 – Discord

IFTTTの設定

まずは、アクセスしてアカウントを作成する。 ログイン後には、アイコンを押すことで表示される[Create]から、大きく表示される[This]で何のサービスからの取得か指定する。

f:id:Zarat:20200515213503p:plain
createボタン
f:id:Zarat:20200515213911p:plain

twitterを検索して、下に出てくる[New tweet from search]を選択。 観測したいキーワードを指定。

f:id:Zarat:20200515214403p:plain
観測するキーワード検索の指定
[Create trigger]を押した後に、今度は[That]を選択した後、webhookを検索する。
f:id:Zarat:20200515214732p:plain
webhookの検索
webhookの[Make a web request]を選び、bot通知の設定を行う。
上から、[URL]には利用するbotのwebbhookのURLを入力。
f:id:Zarat:20200515215224p:plain
botの設定
投稿なので[Method]はPOSTで、[Conctent Type]についてはapplication/jsonにしている。[Body]に関してはtweetのリンクだけ通知して貰えば良いと考えているので[Add indiegrent]からLinkToTweetのみ選択している。
[Create action]を押して、エラーっぽい赤文字が出なければ上手くいっている。最後の画面では、登録時のメールアドレスに動いたときに通知を行うかどうかの確認があるので適宜設定する。

設定完了

使用感

  • 更新頻度はややムラがあるような気がする。しかし、検索結果が更新されていれば、おおよそ1時間以内、早くて2,3分おきに通知が来る。
  • フィルタのようなものが無いので、RTとツイートを判別できず、複数人がRTしたものは元ツイートを含めて繰り返し通知されてしまう。

    今後の展望

  • rssの無いwebの更新を何等の方法で検知してbotに通知させたい
  • サーバ立てて自由にやりたい