メインコンテンツへスキップ
見出し画像
Photo bysnowdingo

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の導入方法

     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ