Ruby
Faraday
Webhook
discord

[Ruby]DiscordにWebhookでメッセージを投稿する

Webhook URLを取得

  1. サーバー設定Webhooksタブを開く
    スクリーンショット 2018-03-13 22.15.56.png

  2. Webhookを作成をクリックする
    スクリーンショット 2018-03-13 22.15.56.png

  3. オプション設定をおこなう

    • チャンネル:メッセージを投稿するチャンネルの選択
    • 名前:メッセージを投稿する際のユーザ名
    • WEBHOOK ICON:メッセージを投稿する際のユーザのアバターの編集
  4. WEBHOOK URLをコピーする
    後ほど使います。

WebhookにPOSTするプログラムの作成

投稿したいメッセージを先ほど取得したWEBHOOK URLに対してPOSTするだけです。
Faradayを使ってPOSTしてみました。

discord_webhook.rb
require 'faraday'

conn = Faraday.new
conn.post do |req|
  req.url '取得したWEBHOOK URL'
  req.headers['Content-Type'] = 'application/json'
  req.body = '{ "content" : "投稿したいメッセージ" }'
end

投稿したいメッセージのところにtestaaaaaaaaを入れて動かしてみたら、こんな感じで投稿できました。

スクリーンショット 2018-03-13 22.35.05.png

その他、指定のフォーマットに沿ってbodyをいじれば、ユーザ名を変えたりttsでメッセージを読み上げさせたりできそうです。