サーバーからDiscordに通知をしたい
EverydayOneMotionという企画をしているのですが、エイプリルフール企画で「ユーザーに投稿してもらったものを手動確認してTwitter投稿」、みたいなことをすることになりました。
メンバーの連絡ツールにDiscordを使っており、 #aprilfool2017
チャンネルに通知しようとしたところ分かりやすい情報が出なかったので、ここに記しておきます。
言語はPHPですが、POST送れればなんでも良さそう。
1.webhookのURLを取得
チェンネル一覧右側の「チャンネルの編集」をクリック
「webhookを作成」をクリック、BOTの情報を適宜編集できます。2.webhookにPOSTする
取得したURLにPOSTすると通知を送ることが出来ます。
// Guzzleなりcurlなりでよさそう
$client = new GuzzleHttp\Client();
$request = $client->createRequest('POST', DISCORD_WEBHOOK, ['json' => ['content' => 'ここにメッセージ']]);
$response = $client->send($request);
{
"content":"ここにメッセージ"
}
様子
「一目惚れ」 (by @_Nokir ) #motiongraphics #EveOneMotion pic.twitter.com/CrYqrjbXF4
— EOM@~23:00JST (@motions_work) 2017年3月31日
他のパラメータは下記リンクを参考に
参考
https://gist.github.com/jagrosh/7606268fc9f1d3e90ce9efc79294f960
https://github.com/hammerandchisel/discord-api-docs/blob/2f0a074005618a51df2f26122a6d4c7aa216732e/docs/resources/Webhook.md
http://docs.guzzlephp.org/en/5.3/clients.html#json