2017年2月3日金曜日

Twitter投稿をDiscordにWebhookを使って流す方法(IFTTT使用)

オンラインゲーム界隈で音声チャットツールとして使われているDiscordですが、テキストチャット機能も充実しています。
ルームやチャンネルも細かく分けられるので、情報集約ができたら良いと考え、Twitter投稿をDiscordに流すことにしました。

事前準備

  • 必要なTwitterアカウントのユーザ名確認
  • DiscordのWebhook URL
  • IFTTTの登録

今回連携させたTwitterアカウント


DiscordのWebhook URL取得方法

  1. Discordの投稿を流したいチャンネルを右クリックし、「チャンネルを編集」を選択
  2. Webhooksをクリックし、「Webhookを作成」を選択
  3. WEBHOOK URLをコピーしておく(メモ帳等にコピーしておく)
  4. 名前を入力し、「保存」を押す(Webhook Bodyにusernameが未設定の場合、この名前が表示されます)

IFTTTの設定方法

  1. My Appletsより、New Appletを選ぶ
  2. +this をクリックし、Twitterを選択、または入力して選択する
  3. Twitterアカウント連携を求められた場合は、許可する
  4. 「New tweet from search」を選択する
  5. Search for 欄に、from:と@なしのTwitterユーザ名を入力し、Create triggerを押す(例:@tenkijpの場合、「from:tenkijp」と入力する)
  6. +that をクリックし、makerと入力し、Makerを選択する
  7. Make a web request を選択する
  8. URLにDiscordのWebhook URLを貼り付けて入力、MethodはPOST、Content TypeはApplication/jsonを選ぶ
  9. Bodyに { "username":"{{UserName}}", "avatar_url":"{{UserImageUrl}}", "content":"{{Text}}" } と入力してCreate action
  10. このレシピの名前を入力してFinish
これでDiscordのアイコンがTwitterのアイコン、名前がTwitterのユーザ名、内容がツイート本文になるはずです。

※ コピペする際、"が全角文字の”になっていると登録できるがWebhookが送信されないので、
メモ帳等に一度貼り付けて確認してからが良い

これでTwitter投稿があった際にDiscordのチャンネルに内容が流れます。
Discordへの投稿遅延は短くて十数秒、長くても数分で投稿されるようです。


参考にしたサイト

Another webhook tutorial (YouTube to Discord via IFTTT) · GitHub : https://gist.github.com/austinhuang0131/4610dd2e19ce22b407387981479d1bae

Discord API Help
https://discordapp.com/developers/docs/resources/webhook#execute-webhook

5 件のコメント:

  1. 改行されてしまっているツイートだと読み込んでくれないのですがどうすればよろしいでしょうか?

    返信削除
  2. 改行されているツイートを表示する方法として、{{Text}}ではなく{{LinkToTweet}}を使ってみるというのはいかがでしょうか。

    返信削除
  3. 表示の仕方は変わりますが、Discordのリンク自動展開機能で、ツイートの内容が表示されると思います。

    返信削除
  4. 現在、"Maker"がないのですが...

    返信削除
  5. 確認したところ、"Maker"は"Webhooks"に名前が変わっているようです。

    返信削除