WebhookでTwitter→Discord通知できる"Zapier"
DiscordにTwitterの投稿通知を出せるようにしたいなー
と調べていたところ、IFTTTがすぐに表示されたのですが、過去に別件で使ったことがあったのでパス。
その後、このZapirの記事をいくつか見つけたので使ってみることに。
実は同じサーバーのスプレッドシートとの連携で既にお招きされていたので存在は知っていたのですが、何者か知らなかったのでちょうどよかったです←
Zapierでは、アプリとアプリ、ツールとサービス、といった任意の連携イベント(ここではZapと呼ぶっぽい)を作成できます。
こんな感じ。PremiumだとSalesforceなどとの連携もできるようです。
アプリそのままもあるし、Webhookなどであちこちから呼べるしなので、汎用性は高そうです。
今回はGoogleアカウントでログインしました。
Discordに連携する時に権限設定があるのですが、問題があってもサーバーのロール設定(Zapierロール)から再設定可能なのであまり気にせず進めてOKです。
同じDiscordサーバーでも別アカウントからZapierを呼べるのは有り難いかもです。その理由は以下に。
課金システムについて
いくつか料金プランがあって、
Zap数/月・実行タスク数/月によってお値段が変動するようです。
現在Freeプランですが、初月はガッツリ使える模様。
便利だからとたくさんZapをお試ししてると、1ヶ月後ピンチかもしれません。ご注意!
(やっと)連携方法
事前準備:連携させたいTwitterアカウントで予めログインしておくとスムーズかも
AppをTwitter、トリガーイベントを選択肢から選びます。(今回はUser Tweetを選択)
トリガーにするアカウントを指定し、連携します
Customize TweetではUsernameでアカウント名を指定しました。
トリガーイベントとUsernameが適切に設定されていれば、テストに成功します。失敗した場合は、上記設定を見直してみましょう。(一回失敗したけどなんでだったのか不明・・・Usernameをスペースなしだった時に失敗したような気がする)
テストが成功すると、トリガーとなるTwitterの設定は終了でした。
続いてアクションの設定です。
Webhook POSTを探します。表示されていない場合は検索窓にPOSTと入力してみたら出てくると思います。
Customize Requestに、DiscordのWebhook URLを貼り付けます。
(Webhook URLの取得方法は後述)
Payload Typeにjson
Dataはcontent / 通知したいデータを指定します。
そろそろ最後!
HeadersにContent-Type
詳細はapplication/jsonを指定
以上でZapier側の設定は完了です!
手順の途中でDiscordのWebhook URLの取得が出てきましたが、これが完了している場合は以下をすっ飛ばして最後をご覧ください。
Discord側のWebhook設定
多少前後していますが、Discordの設定は以下のように行いました。
まず、サーバー設定→INTEGRATIONS→Webhooksで新しいWebhookを作ります
通知したいチャンネルと、Webhookの名前・アイコンを指定します。
"Copy Webhook URL"をクリックすると、Webhook URLが取得できるので、そのままZapierで指定された場所へペーストすればOKです。
動作確認
このURLを使ってZapierの設定を完了すると、
無事、作ったTwittanが指定したチャンネルに投稿してくれました
画像が多いので長い記事となりましたが、10分くらいで終わっちゃう作業だと思います。
応用して色々できるのですが、
Zapierは5 Zap/月などの制限がある点に留意して活用しましょう!
Project J.Kの初収入となる 投げ銭、お待ちしております🙇♂️