こんにちは、ミナピピン(@python_mllover)です!
今回はLineのAPIを使ってPythonでプッシュ通知を自動化してみました。もう使い古されたネタだと思うので自分に適当にまとめておきます。
チャンネルの作成
まずLineのデベロッパーサイトにログインして通知を送るチャンネルを作成します。アカウントはビジネスアカウントではない個人用アカウントで問題ないです。
コンソールにログインしたら、新規の「Providers」をcreateで作成し、その中に「Create a channel」⇒「Messaging API」を選択し新規チャンネルを作成します。名前や説明は適応でいいですが、botのチャンネル名になるので、あまり適当にしすぎないほうがいいかもです、
チャンネルを作成したら、「Messaging API」⇒「Messaging API settings」に表示されているQRコードを自身のスマホのLineアカウントから読み込んで友達登録します。これでBOTとのトークルームが作成されます。
アクセストークンの発行
そして、「Messaging API」のタブ画面の下の方に「Channel access token」という欄が存在します。ここでissue(発行)というボタンがあるので、それをクリックしてチャンネルのアクセストークンを発行します。
ライブラリのインストール
最後にLineのAPIをラッピングしてライブラリしたものがあるのでそれをインストールします。
# ライブラリのインストール
$pip install line-bot-sdk
自分のユーザーIDの取得
BOTの操作に必要な送り先となる自分のアカウントIDを知っておく必要があるのですが、これが少し厄介です。これはLineの設定画面で表示されているIDとは違いLINEが内部で保持しているアカウントIDとなります。これを把握するためにはherokuとflaskを使ってwebhookサーバーを立ち上げるしかないです。
herokuとflaskによるLineのWebhookサーバーの構築の説明が長くなるので、記事にまとめていますのでそちらを参考にしてください。
関連記事:【Python】HerokuでLineのAPI用のwebhookサーバーを立てる
それがめんどくさい人は自分の作ったLine内部内部ユーザーID確認BOTを友達追加して適当なワードを送ると内部IDを返してくれます。
詳細:【LINE】MessagingAPIで自分のLINEアカウントの内部ユーザーIDを確認する
これで前準備は完了です。
Python+Messaging APIでメッセージを送信する
from linebot import LineBotApi from linebot.models import TextSendMessage YOUR_CHANNEL_ACCESS_TOKEN = '自分のアクセストークン' line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) def main(): user_id = "自分の内部ユーザーID" messages = TextSendMessage(text=f"こんにちは😁\n\n" f"最近はいかがお過ごしでしょうか?") line_bot_api.push_message(user_id, messages=messages) if __name__ == "__main__": main()
これでBOTアカウントから自分のLINEアカウントにこんにちは~という通知が送られてきます
続編:【Python】Heroku上にLine Messaging API用のwebhookサーバーを作る
LINE BOTを作ろう! Messaging APIを使ったチャットボットの基礎と利用例
参考:https://qiita.com/kotamatsuoka/items/6f56d0d0a3225160b4d0
コメント