PythonでLINEメッセージを送る:基礎編

Messaging APIでメッセージ送信する方法は大きく分けて2種類(応答メッセージ、プッシュメッセージ)です。前回までは、応答メッセージを利用していましたが、今回は、プッシュメッセージを扱います。

プッシュメッセージの種類

プッシュメッセージは、任意のタイミングでユーザーに送信できるメッセージで、送る方法には、以下の4種類があります。

送信方法説明備考
プッシュメッセージユーザー、グループ、トークルームを指定してメッセージを送信。例えば、ショッピングサイトで商品を購入したユーザーに対して、商品の発送を通知する場合に使用。
マルチキャストメッセージ複数のユーザーIDに対して、同じメッセージを効率よく送信。例えば、ショッピングサイトを利用したことがあるユーザーに対して、新機能を一斉に通知する場合に使用。
ナローキャストメッセージ複数のユーザーに対して、同じメッセージを送信。送信対象は、属性情報(性別や年齢、OSの種類、地域など)やリターゲティング(オーディエンス)を利用して指定。
ブロードキャストメッセージLINE公式アカウントと友だちになっているすべてのユーザーに、同じメッセージを送信。

マルチキャストメッセージが複数のユーザーIDを指定するのに対して、ナローキャストメッセージは、ある条件に一致するユーザーのかたまり(オーディエンス)を利用して、オーディエンス同士をAND、ORなどの条件で指定できます。

ナローキャストメッセージは、さらに属性情報も使えるので、マーケティングオートメーションとして、プッシュメッセージを行うのに有用な送信方法です。

ただ、ナローキャストメッセージは送信対象が50人以上必要(送信できる例外もある)なので、個人レベルで使うのには、他の送信方法で十分なので、ナローキャストメッセージ以外について、試します。

Pythonでプッシュメッセージを送ってみた

まず、プッシュメッセージを送るのに、自分自身のユーザーIDを知る必要があります。LINE Developers > チャネル基本設定 > あなたのユーザーID で確認できます。ユーザーIDはUから はじまる文字列です。

以下、記事同様のPipenv環境で、.envファイルに環境変数を記載して実行します。

LINEサンプルボット(Python)をローカルで動かしてみた(2021年版)
LINE_CHANNEL_ACCESS_TOKEN='YOUR_LINE_CHANNEL_ACCESS_TOKEN'
OWN_USER_ID='YOUR_OWN_USER_ID'

メッセージ送信するPythonコードです。

from linebot import LineBotApi
from linebot.models import TextSendMessage
import os

channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
own_user_id = os.getenv('OWN_USER_ID', None)
line_bot_api = LineBotApi(channel_access_token)

line_bot_api.push_message(own_user_id, TextSendMessage(text='プッシュメッセージ'))
line_bot_api.multicast([own_user_id], TextSendMessage(text='マルチキャストメッセージ'))
line_bot_api.broadcast(TextSendMessage(text='ブロードキャストメッセージ'))

コマンドを実行すると、LINEにメッセージが配信されます。

$ pipenv run python push_message.py

さいごに

LINEメッセージを送る方法に、プッシュメッセージ、マルチキャストメッセージ、ナローキャストメッセージ、ブロードキャストメッセージがあり、ナローキャストメッセージを除く3つを試すことができました。

今回試したことを利用して、もう少し実用的にランダムに名言・格言を送信することを次回、試してみたいと思います。