Python等のプログラムからLINEを用いて通知を送る方法として Messaging API と LINE notify があります。LINE notifyは2025年3月31日にサービスを終了するため、今後はMessaging API を用いる必要があります。
Messaging API と LINE notify の比較
まず、Messaging API と LINE notify を比較してみます。
Messaging API | LINE notify | |
双方向コミュニケーション | 可能 (ユーザーからのメッセージに自動応答可能) | 不可 (LINEへの一方向の通知のみ) |
メッセージ送信形式 | テキスト、スタンプ、画像、動画、音声、位置情報、イメージマップ、テンプレート、Flex Message | テキスト、スタンプ、画像 |
送信先の指定 | 送信時に明示的に指定する | アクセストークン発行時に指定した送信先に送信できる |
利用の難易度 | やや難しい (単にテキストメッセージを一方的に送るだけなら簡単) | 簡単 |
利用料金 | 月200通まで無料 (有料プランあり) | 無料 (デフォルトで1時間1000通まで) |
今後の予定 | 継続して利用可能 | 2025年3月31日で終了予定 |
Messaging API は LINE notify と比べると高機能ですが、料金の点で利用のハードルが高くなっています。
Messaging APIの料金を詳しく見ていきます。LINE公式アカウント料金プランが適用されます。
コミュニケーションプラン | ライトプラン | スタンダードプラン | |
月額固定費(税別) | 0円 | 5,000円 | 15,000円 |
無料メッセージ通数(月) | 200通 | 5,000通 | 30,000通 |
追加メッセージ料金(税別) | 不可 | 不可 | ~3円/通 |
月200通以上送信する場合、DiscordやSlackなど、代替手段を検討してもよいかもしれません。
PythonでMessaging APIを使ってみる
Messaging APIで 自分自身宛にテキストメッセージを一方的に送るだけであれば、難易度はそれほど高くありません。Pythonを使用してLINEのMessaging APIを利用し、テキストメッセージを送信してみます。
Messaging APIを利用するには、LINE Developers コンソールでチャネルを作成し、チャネルアクセストークンと ユーザーIDを取得する必要があります。LINE Developersコンソールからチャネルを直接作成することはできなくなったので、あらかじめLINE公式アカウントを作成する必要があります。
- LINE 公式アカウントを作成する
- LINE公式アカウント作成ページで「LINE公式アカウントをはじめる」をクリックする。
- LINE Business IDを登録する。個人のLINEアカウントかメールアドレス(LINEビジネスアカウント)で登録することができる。
- LINE公式アカウントを作成する。
- LINE Developersコンソールにログインする
- LINE Developersで右上の「コンソール」または「コンソールにログイン」をクリックする。
- 初回アクセス時には、開発者情報の入力が求められる。
- プロバイダーを作成する
- 「新規プロバイダー作成」をクリックする。
- プロバイダー名を入力し、「作成」をクリックする。プロバイダーは、開発するアプリケーションやサービスの管理単位となります。
- チャネルを作成する
- LINE Official Account Manager の設定→Messaging APIで、「Messaging APIを利用する」をクリックする。
- 先ほど作成したプロバイダーを選択して、「同意する」をクリックする。一度プロバイダーと連携すると、変更・解除できないので注意。
- プライバシーポリシーと利用規約の入力は任意。
- ユーザーIDを取得する
- 開発者自身のユーザーIDは、LINE Developersコンソールの「チャネル基本設定」画面で表示される、「あなたのユーザーID」を用いる。このユーザーIDは自身にメッセージを送信する際に利用できます。
- 他人のユーザーIDを取得する手順は複雑です。まず、ユーザーがLINE公式アカウントと友達になり、Botと会話を始めた後に、Webhookイベントを通じてユーザーIDを取得する必要があります。公式ガイドを参照してください。
- チャネルアクセストークンを発行する
- LINE Developersコンソールのチャネル設定画面の「Messaging API設定」で、チャネルアクセストークンを発行する。
LINEの公式Python SDKであるline-bot-sdk
を用いることで簡単に自分宛にメッセージを送信できます。pip 等でインストールできます。
pip install line-bot-sdk
Pythonで次のプログラムを作成し、実行します。
from linebot import LineBotApi
from linebot.v3.messaging import Configuration, ApiClient, MessagingApi, PushMessageRequest, TextMessage
CHANNEL_ACCESS_TOKEN = 'チャネルアクセストークン'
USER_ID = 'ユーザーID'
configuration = Configuration(access_token=CHANNEL_ACCESS_TOKEN)
with ApiClient(configuration) as api_client:
messaging_api = MessagingApi(api_client)
message = TextMessage(text="これはテストメッセージです。")
push_message_request = PushMessageRequest(to=USER_ID, messages=[message])
messaging_api.push_message(push_message_request)
詳細はMessaging APIの公式ドキュメントを参照してください。
コメント