【Python】PythonでLINEプッシュ通知を送る

2019年5月3日

この記事は以下の記事の続きです。今回はPythonでLINEプッシュ通知を送る方法について書いていきます。

※LINEプッシュ通知をプログラムより行うためにはLINE developerへの登録が必要となります。以下の記事で登録手順を紹介しています。

LINE Botを作成するために必要なもの

使用するのはプッシュ通知機能

前回の記事でも記載しましたが、私が作成したのは祝日通知ラインボットです。通知するのが目的なのでプッシュ通知機能を使用しています。

※前回も記載しましたが、LINE developerでのDeveloperプランでは送信先が50人までという制限があります。それ以上送信先を追加するには月額2万円となります…。

Pythonを選んだ理由

LINE APIは決められた形式でリクエストを投げられれば言語は何でも良いです。その中で私がPythonを選んだ理由は以下二つです。

  1. 最近勉強中だから
  2. LINE Bot用のパッケージがあったから

まぁ特に大きな理由はありません。

プッシュ通知を行う

とりあえずいきなりですが、PythonでLINE Botへのプッシュ部分のコードを以下に記載します。

# (1)必要なパッケージをインポート
from linebot import LineBotApi
from linebot.models import TextSendMessage
from linebot.exceptions import LineBotApiError

# (2)LINE APIへ接続するための定数を定義。
LINE_ACCESS_TOKEN= "XXXXXXXXXXXXXXXXXXXX" # ラインアクセストークン
LINE_USER_ID= "YYYYYYYYYYYYYYYYYYYYYYYYY" # ライン

# LINE APIを定義。引数にアクセストークンを与える。
line_bot_api = LineBotApi(LINE_ACCESS_TOKEN)

text_message ="テストメッセージです。"
try:
	# ラインユーザIDは配列で指定する。
	line_bot_api.multicast(
	[LINE_USER_ID], TextSendMessage(text=text_message)
)
except LineBotApiError as e:
	# エラーが起こり送信できなかった場合
	print(e)

いくつか固有の定数がありますが、基本的に必要なコードはこれだけです。上記のコードを動かすために必要なことを以下で記載していきます。

(1)必要なPythonパッケージ

上記のコードで必要なパッケージは「line-bot-sdk-python」のみです。pipでインストールしましょう。

(2)アクセストークンとユーザIDを取得する

アクセストークンとユーザIDはLINE developerのプロバイダの設定から確認できます。

(私の場合は)祝日通知ラインBotを選択し、プロバイダの設定を確認します。

最初に表示されているチャネル基本設定を下にスクロールしていくとアクセストークン(ロングターム)が記載されている箇所がありますので、上記のコードの「LINE_ACCESS_TOKEN 」に設定します。

さらに下にスクロールするとユーザIDが記載されている箇所がありますので、Your user IDの記載を「LINE_USER_ID」に設定します。

ちょっと嵌ったこと

私が地味に嵌ったことがありました。Botのプロバイダと自身のLINEアカウントは別物であるということです。上記のコードで自身のアカウントに通知送るためにはLINEプロバイダを友達登録する必要があります。

ユーザIDの記載の上にQRコードがあるので、こちらで友達登録がすればOKです。最初はAPIにリクエストを送ればもう大丈夫だと思っていました…。

まとめ

プッシュ通知を送るためのコードは非常に簡潔です。

次回は上記で作成したコードをホスティングし定期実行する方法を記載していきます。