見出し画像

PythonでDiscordのWEB Hookを叩く ~超簡単なメッセージ転送手段~

こんにちはRcatです。
今回はDiscordのWEB Hookをやっていきます。
とはいえ、私はbotがメインなのであまり深くは入っていきませんが、簡単にメッセージを転送したいという方の選択肢として使えそうだなと思い、今後の引用のために記事にしてみます。



はじめに

利用規約

情報や作品の活用時は事前に利用規約をご確認ください。

コメントについて

利用規約のガイドラインを確認の上コメントしてください。
則っていないコメントは削除します。


概要

WEB HOOKとは

WebフックはDiscordのテキストチャンネル内に作成することができるメッセージ投稿APIです。
つまりbotアカウントを作ってbotのプログラムを書くという難しい手順を踏まなくても、単純にデータの投稿だけであればURLを叩くだけで投稿できるというわけです。


事前準備

Webフックを作成

まず、最初にテキストチャンネルを作りましょう。
既にある場合はそのチャンネルでも大丈夫です。

作成できたらチャンネルを右クリックし、チャンネルの編集へ進みます。

連携サービスの中のWebフックを作成ボタンを押します。

押した瞬間にWebフックが作成されます。

詳細を表示するとURLがコピーできるようになるのでコピーしましょう。
ここで名前とかも決められるっぽいですね。

準備は以上です。超簡単ですね。

ウェブフックでメッセージを送信

準備ができたら早速メッセージを送信していきましょう。
なお、Pythonがインストールされている前提です。
まだの方はリンク集のPythonのインストール方法を参照してください。

コードは以下の通りです。ファイルに書き込んでも良いですし、インタプリタに直接入力してもOK。

import requests
js = {
"content":"WEBHookテスト"
}
URL = <コピーしたWEB HOOK URL>
requests.post(URL,json=js)

なお、事前にリクエストライブラリはインストールするようにしてください。

pip install requests

実際の入力画面がこちらです。
実行すると200番台の応答が返ってきています。どうやらうまくいったようです。

速攻消すのでURLは隠してません。

Discordの画面を見ると、入力したメッセージが投稿されていることがわかります。

解説の必要がないほど超簡単ですが、一応解説しておきます
"content"が、メッセージの内容にあたり、最大2000文字です。これ以外にも様々なオプションがあるため、興味のある方は色々試してみるといいかもしれません。
Webフックはjson形式のボディを受け取るためpostメソッドに対してjson=という形で辞書を渡すことで自動的にタイプがjsonになります。

import requests
js = {
"content":"WEBHookテスト"
}
URL = <コピーしたWEB HOOK URL>
requests.post(URL,json=js)

例えば、公式リファレンスを見るとユーザーネームというキーがあります。これはbotの名前を一時的に上書きする機能のようです。

これで実行すると以下のようになります。
これなら1つのWebフックを使い回しても一発で見分けがつきますね。

こちらはDiscordの公式リンクです。もし細かい機能に興味があればこちらを参照してください。


まとめ

今回はDiscordのWebフックについて見ていきました。
ボットを作るのは少々敷居が高いですが、この方法であればほんの少しの知識があればメッセージ転送の自動化ができますね。
それではまたお会いしましょう。


リンク集

Pythonのインストール方法

LoggingBOTの導入方法

いいなと思ったら応援しよう!

Rcat999 情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。