Pythonでアプリにメッセージや通知を送るためのサンプルコードです。
PythonでLINE、Slack、Discordへメッセージ、通知を送る
LINE、Slack、Discordといったアプリにメッセージや通知を送るには、Pythonプログラムから各アプリのメッセージ受信アドレス(URL)へHTTPリクエスト(https)を送信します。
今回は下記のモジュールを利用して、HTTPリクエストを送信します。
# requestsをインストール
pip install requests
今回は、requestsモジュールを利用しますが、標準モジュールのurllibを利用するなど、他の方法でもメッセージを送ることが可能です。
PythonでLINE、Slack、Discordへメッセージ、通知を送る
では、先にサンプルコードを掲載します。
サンプルコード
解説
では、それぞれ解説です。
LINEにPythonでメッセージ、通知を送る
LINEへメッセージを送るためには、LINE notifyというサービスを利用する必要があります。
LINE notifyの公式URLはこちら。
このサービスを登録すると、LINE notifyのURLにメッセージ(HTTPリクエスト)を送信すると、送ったメッセージをLINE通知として転送してくれます。LINEの通知先は、LINE notifyの公式URLからログインし、設定画面から登録します。※グループのみ登録可能だったはずです
LINEにPythonでメッセージ、通知を送るサンプルコード
def line_notify(token, message):
"""
LINE send message.
Args:
token (str): line notify token.
message (str): message.
"""
LINE_NOTIFY_URL = 'https://notify-api.line.me/api/notify'
if token:
requests.post(LINE_NOTIFY_URL,
headers={'Authorization': 'Bearer {}'.format(token)},
data={'message': '\n{}'.format(message)})
line_notifyメソッドでLINEにメッセージを送信します。引数1には、LINE notfyで取得したトークン、引数2には、送信するメッセージを設定します。
「LINE_NOTIFY_URL 」には、LINE notifyのURLを固定で指定しています。
「if token」でトークンが設定されているかを判定しています。
「requests.post」メソッドで、LINE notifyのURLにHTTPリクエスト(POST)を送信します。headersには、LINE notfyで取得したTokenを設定し、dataにはメッセージを設定しています。
SlackにPythonでメッセージ、通知を送る
Slackにメッセージを送るには、slack incoming-webhookを利用します。
Webhookとは、外部システムからSlack送られてくるHTTPリクエストのことで、今回の場合、PythonプログラムからSlackへ送るメッセージのことを指します。
Slackのincoming-webhookを利用するにはこちらのページにアクセスし、「Create a Slack app」をクリックします。
前述のLINEでもそうでしたが、Slack、Discordにメッセージを送るということは、いずれの場合も、こちらのプログラム(PythonじゃなくてもOK)から各サービスの受信用URLにHTTPリクエストを送信し、リクエストを受信したサービス側で自動的にそれぞれのアプリの形式でメッセージ通知してくれるという処理の流れになります。
SlackにPythonでメッセージ、通知を送るサンプルコード
def slack_notify(url, message):
"""
Slack send message.
Args:
url (str): slack incoming-webhook url.
message (str): message.
"""
if url:
requests.post(url,
data=json.dumps({'text': message}))
slack_notifyメソッドでSlackにメッセージを送信します。引数1には、slack incoming-webhookで取得したURL、引数2には、送信するメッセージを設定します。
「if url」でurlが設定されているかを判定しています。
「requests.post」メソッドで、slack incoming-webhookのURLにHTTPリクエスト(POST)を送信します。urlにslack incoming-webhookを設定し、dataにはJSON形式でメッセージを設定しています。
DiscordにPythonでメッセージ、通知を送る
Discordにメッセージを送るには、Discord webhookを利用します。
Discordのwebhookを利用するには、チャンネルの編集からWebhookの設定を行います。
DiscordにPythonでメッセージ、通知を送るサンプルコード
def discord_notify(url, message):
"""
Discord send message.
Args:
url (str): discord webhook url.
message (str): message.
"""
if url:
requests.post(url,
data={'content': message})
discord_notifyメソッドでDiscordにメッセージを送信します。引数1には、discord webhookで取得したURL、引数2には、送信するメッセージを設定します。
「if url」でurlが設定されているかを判定しています。
「requests.post」メソッドで、discord webhookのURLにHTTPリクエスト(POST)を送信します。urlにdiscord webhookを設定し、dataにはJSON形式でメッセージを設定しています。