自作アプリから簡単にスマートフォンに通知を送信できるAPIを提供していたLINE Notifyが今年2025年3月で終了すると発表があった。そこで、無料で使える代替サービスのDiscordウェブフックを使う方法として、PythonからDiscordにメッセージを送信してみよう。

  • Pythonから手軽にDiscordにメッセージを送信しよう

    Pythonから手軽にDiscordにメッセージを送信しよう

長年便利に使えたLINE Notifyに感謝

これまで、LINE Notifyを使うと、自作のアプリから簡単にLINEのチャットにメッセージが送信できた。LINE NotifyはRESTベースのAPIだったので、ウェブサイトで認証用のトークンさえ取得すれば、とても手軽なプログラムでLINEに通知を送信できた。

あまりにも簡単だったので、筆者もLINE Notifyを使っていろいろ便利な仕組みを作っていた。毎日、いくつかの英単語を送って学習に利用したり、日々ゴミ出しの通知だったり、定期的な会議に遅れないようにリマインダーを送信したり…と、とても便利だった。

そんな便利なサービスも、2025年3月でサービス終了となる。とても残念だが、経営資源を後継の類似プロダクトに集中させるとのことだ。長年にわたり便利なサービスを提供してくれたLINE Notifyの運営チームに感謝したい。

  • 残念ながらLINE Notifyが終了する - 長年の感謝を伝えたい

    残念ながらLINE Notifyが終了する - 長年の感謝を伝えたい

LINE Notifyの代替サービスは?

なお、LINE Notifyのサービスが終了後は、LINE公式のMessaging APIへ移行するようにと案内がある。筆者もいくつかのツールでは、このAPIを利用するように移行した。

しかし、問題もある。Messaging APIは、200通以上のメッセージを送信する場合、月5000円のライトプランを契約しなくてはいけない。毎日メッセージを送ると、月200通はあっという間に超えてしまう。しかも、英単語学習やゴミ出しなど、どうでも良い用途のために、有料プランを契約するのは、もったいなく感じてしまう。そのため、LINE Notifyには恩義を感じているものの代替サービスを探してしまった。

LINE Notifyのように、自作アプリからチャットアプリにメッセージを送信できるサービスを探してみると、いくつか候補が存在する。その中でも、一番簡単なのが、Discordのウェブフックだ。簡単に自作ツールからメッセージを送信できる。

Discordとは?

Discordは無料のチャットアプリだ。テーマごとにグループを作成して、会話することができる。もともとはゲームコミュニティ向けに開発されたのだが、趣味や仕事、勉強など幅広い用途で利用されるようになった。

Discordは、こちら(https://discord.com/)からダウンロードできる。PCだけでなくスマートフォンのアプリが用意されている。また、インストールせず、ブラウザから利用することもできる。

  • Discordのウェブサイト

    Discordのウェブサイト

Discordでは、LINEで言うところのグループを「サーバー」と呼ぶ。そしてサーバーの中には、会話の内容を分けるために「チャンネル」という概念が存在する。これはトピックを分けるために存在するものだ。「お知らせ用」とか「自己紹介用」「雑談用」など、特定のトピックごとに分けて会話できる。

Discordでウェブフックを取得しよう

そして、Discordには、手軽に外部アプリから特定のサーバーにメッセージを送信できる「ウェブフック」という機能が用意されている。これを使うと、Pythonから任意のチャンネルにメッセージを送信できる。

Discordのウェブ版の画面で確認してみよう。Discordにユーザー登録すると、次のような画面が表示される。一番左(1)でサーバーを選択し、(2)で表示したいチャンネルを選択しよう。そして、Pythonからチャンネルにメッセージを送信するために、ウェブフックと呼ばれるURLを得るには、(3)のチャンネルの設定をクリックしよう。

  • Discordの使い方

    Discordの使い方

チャンネルの設定画面を出したら、「連携サービス > ウェブフックを作成」ボタンをクリックしよう。そして、表示されたボットをクリックすると「ウェブフックURLをコピー」というボタンが表示されるので、URLをコピーしよう。以上で準備は完了だ。

  • ウェブフックURLをコピーしよう

    ウェブフックURLをコピーしよう

プログラムを作ろう

ウェブフックURLを取得したら、プログラムを作ろう。手軽にウェブフックにメッセージを送信するために、requestsパッケージをインストールしよう。ターミナル(WindowsならPowerShell、macOSならターミナル.app)を起動して次のコマンドを実行しよう。(macOSの場合はpythonコマンドをpython3に読み替えよう。)

python -m pip install requests

次に、プログラムを作ろう。以下のプログラムを「send.py」という名前で保存しよう。取得したウェブフックのURLを下記のプログラム(*1)の部分に書き換えよう。

import requests
import json

# 以下にウェブフックのURLを指定(書き換えが必要) --- (*1)
WEBHOOK_URL = "https://discord.com/api/webhooks/1340248450578645034/iQ2ohwK7TVEmmMSWYp3NjXYMhhtDtLWRXoCrIqMNoVFbAtpNMMTJwUTj0K1FqBTQKsCP"

def send_message(content):
    # メッセージを送信 --- (*2)
    payload = {"content": content}
    headers = {"Content-Type": "application/json"}
    response = requests.post(WEBHOOK_URL, data=json.dumps(payload), headers=headers)
    # 実行結果を調べる --- (*3)
    if response.status_code == 204:
        print("メッセージを送信しました!")
    else:
        print(f"エラー: {response.status_code} - {response.text}")

if __name__ == "__main__": # --- (*4)
    message = "心配事があると心が沈み😭良い言葉によって心が晴れる😊"
    send_message(message)

プログラムを確認してみよう。(*1)の部分にウェブフックURLを指定する。(*2)の部分でメッセージを送信する。(*3)ではメッセージの送信結果を確認する。失敗した場合には、その理由を表示する。(*4)の部分で関数send_messageを呼び出して、メッセージを送信する。

次のコマンドを実行してプログラムを実行できる。

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら