DiscordでTwitterの投稿をIFTTTで自動取得する

  • LINEで送る

こんばんにちは(=゚ω゚)ノ

 

Discordと呼ばれるサービスを利用したことがありますか?

これは、テキストや音声でチャットを行うコミュニケーションツールの一つです。

 

利用者の中には、

「あの公式Twitterアカウントの投稿を自動でテキストチャンネルに投稿できたらなぁ。」

と思うことがあるかもしれません。

 

Discordが提供しているWebhookと、IFTTTという外部サービスを用いることで、実現することができます。

 

IFTTTの準備

まず、IFTTTのサイトにアクセスし、アカウントを作成します。

IFTTT

IFTTTの画面

トップページからアカウントの登録をすることができます。

  • メールアドレスによる登録
  • Googleアカウントによる紐付け登録
  • Facebookアカウントによる紐付け登録

に対応しているようです。

簡単に済ませたい場合はGoogleやFacebookのアカウントを使ってもいいかもしれません。

 

ここではメールアドレスを入力して登録してみます。

入力したらGet startedをクリックします。

 

IFTTTの画面

次にパスワードを入力してSign upをクリックします。

 

IFTTTの画面

いくつかアニメーションがあった後、このような画面に移ります。

ここで、画面上部のMy Appletsをクリックします。

 

IFTTTの画面

IFTTTが行う1つ1つの動作がAppletとして整理されます。

初期で存在するGet an email with the latest IFTTT updatesは、その名の通りIFTTTのアップデート情報が登録したメールアドレスに送られる、というAppletです。現在はOn担っていますが、Offにすることでメールが来なくなるようです。

 

IFTTTでの設定(Appletの作成)

では、New Appletをクリックして続けましょう。

 

IFTTTの画面

大きな文字が出てきました。

IFTTTとは

IF This Then That

の略です。つまり、

これ(トリガー)が起こったら、あれをする

ということです。今回の場合は、

特定のTwitterユーザーがTweetしたら、WebhookにjsonをPOST(テキストチャンネルにTweetを投稿)する

ということになりますね。

 

では、まずこれ(特定のTwitterユーザーがTweet)から設定していきましょう。+thisをクリックします。

 

IFTTTの画面

このような画面になりますので、twitterを選択します。

 

IFTTTの画面

最初は、ご自分のアカウントとの関連付けが必要となります。

Connectをクリック。

 

IFTTTの画面

Twitterでログインして、確認して良ければ連携アプリを認証します。

 

IFTTTの画面

今回は特定のユーザーのTweetを取得したいので、New tweet by a specific userをクリックします。

 

IFTTTの画面

Username to watchの項目に、Tweetを取得したいユーザーのIDを@抜きで入力します。

入力したら、Create triggerをクリックします。

 

IFTTTの画面

それでは次にあれ(テキストチャンネルにTweetを投稿)を設定していきます。

+thatをクリックします。

 

IFTTTの画面

Choose action serviceで、Webhookを検索し、Webhookをクリックします。

 

IFTTTの画面

Connectをクリックします。

 

IFTTTの画面

Make a web requestをクリックします。

 

IFTTTの画面

この画面に移ります。

ここでこの画面は一旦放置して、Discordに移動します。

 

Discordでの設定

Discordの画面

Discordで、Tweetを投稿させたいテキストチャンネルの歯車アイコンチャンネルの編集をクリックします。

ここで、このアイコンが選択できない場合、あなたの持っている権限ではWebhookの設定ができません。

サーバーの管理者に問い合わせましょう。

 

Discordの画面

このような画面になると思います。ここで、左カラムからWebhooksを選択します。

 

Discordの画面

まだWebhookが一つもありませんね。Webhookを作成をクリックして作成しましょう。

 

Discordの画面

このようなポップアップが出てくると思います。

名前 ここで設定する名前のBotアカウントでチャンネルに投稿されます。

チャンネル ここで選択したチャンネルに投稿されます。

WEBHOOK ICON ここで設定した画像がTweetを投稿するBotアカウントのアバターになります。

WEBHOOK URL IFTTTでの設定に必要です。

 

Discordの画面

今回はこのように設定して見ました。

では、WEBHOOK URLのCopyをクリックします。

そして、保存をクリックします。

 

Discordの画面

このように、Webhookが作成されました。

 

IFTTTの設定(続き)

IFTTTの画面

それでは、IFTTTのApplet設定画面に戻ってきて、URLの欄に先ほどコピーしたWebhook URLをペースとします。

 

IFTTTの画面

MethodはPOSTを選択します。

 

IFTTTの画面

Content Typeはapplication/jsonを選択します。

 

IFTTTの画面

Bodyは実際にDiscordに投稿されるものになります。

{ "content" : " {{CreatedAt}} : {{LinkToTweet}} " }

{{CreatedAt}} は、January 11, 2018 at 01:05AMのように、Tweet日時に置きかわります。

{{LinkToTweet}} は、Tweetへのリンクに置きかわります。

Tweetへのリンクさえあれば、Discordの機能によって自動的にTweetが展開され、プロフィール画像、ユーザー名、ユーザーID、Tweet本文、が表示されます。

 

IFTTTの画面

テキストボックスの外をクリックすると、CreatedAtLinkToTweetが白枠で囲まれたと思います。

 

IFTTTの画面

ここまでできたら、Create actionをクリックします。

 

IFTTTの画面

Appletの識別用の説明文を編集できます。

機能には関係ないので、必要に応じて編集します。

最後にFinishをクリックします。

 

IFTTTの画面

Appletが作成されました。

 

テスト

Twitterの画面

それでは、実験して見ましょう。今回のAppletで設定したのは私のアカウント@_k_sanです。

Tweetしてみます。

 

Discordの画面

Webhookを設定したDiscordのテキストチャンネルに無事にTweetが投稿されました。

 

まとめ

うまくTweetがDiscordに投稿されたでしょうか。

IFTTTのシステムの関係なのか、実際にTweetされてからDiscordに表示されるまでにラグがあったり、いつまでたってもTweetが表示されない、ということがしばしば起きます。

あまり正確な動作は期待しないほうが良いかもしれません。

 

スキルさえあれば、専用のBotを自作するのがいいのかもしれませんね。

 

ではでは

  • LINEで送る

コメント

  1. rigal より:

    質問なのですが
    RSSを使用したときのBodyの例を教えてもらえませんか?
    タイトルと投稿日時さえあれば大丈夫です

  2. にゃ~の♪ より:

    とっても役に立ちました。
    おかげさまで自前のDiscordサーバ上でいくつものtweetを流せるようになり、楽になりました。

コメントを残す

*