Python3でlineにメッセージを送る

LineNotify 自宅IoT

python3でLine Notifyを使用してメッセージ(文章、画像、スタンプ)を送る方法メモ。

大きく2ステップです。

Line Notifyのアクセストークン発行

以下へアクセス。

LINE Notify
LINE NotifyはGitHub,IFTTT,MackerelなどのWebサービスからの通知を、LINEで受信することが出来る便利なサービスです。

ログインします。

右上のマイページリンクからアクセストークンを発行します。

access-token

トークン名、トークルームを選択し、トークンを発行します。

token

トークンは忘れずにメモします。

Python3からLineへメッセージを送信する

メッセージだけであれば以下で送信可能です。

import requests

url = "https://notify-api.line.me/api/notify"
access_token = '取得したアクセストークン'
headers = {'Authorization': 'Bearer ' + access_token}

message = 'test message'
payload = {'message': message}
r = requests.post(url, headers=headers, params=payload)

requestsを利用し、headerにtokenを付与して、postメソッドでurl、header、payloadを引数にして実行するだけです。

なお、messageに空文字は指定できません。

簡単ですね。

画像・スタンプなどの送信方法

画像を送信する場合

postメソッドへのパラメータにfilesを追加します。

import requests

url = "https://notify-api.line.me/api/notify"
access_token = '取得したアクセストークン'
headers = {'Authorization': 'Bearer ' + access_token}

message = 'image test'
image = './sample.jpg'  # jpgもしくはpng
payload = {'message': message}
files = {'imageFile': open(image, 'rb')}
r = requests.post(url, headers=headers, params=payload, files=files)

こちらもmessageに空文字は指定できません。何かの対策でしょうか。

スタンプを送信する場合

postメソッドへの引数:payloadにstickerPackageIdとstickerIdを追加します。

import requests

url = "https://notify-api.line.me/api/notify"
access_token = '取得したアクセストークン'
headers = {'Authorization': 'Bearer ' + access_token}

message = 'stamp test'
payload = {
    'message': message,
    'stickerPackageId': 1,
    'stickerId': 13,
    }
r = requests.post(url, headers=headers, params=payload)

stickerPackageIdとstickerIdの組み合わせによるスタンプの種類は以下を参照します。

https://devdocs.line.me/files/sticker_list.pdf

以下を参照しました。
PythonでLINEにメッセージを送る - Qiita
はじめに何番煎じかわかりませんが,Python x LINE NotifyでLINEにメッセージを送れるボットを作ったので,その備忘録です。深層学習モデルの学習など,時間がかかる処理を回している…

コメント

タイトルとURLをコピーしました