77Lifeworkベータ版

77Lifeworkベータ版

IT関係の話(ツール開発・インフラ構築)をメインとして、その他私の趣味や雑記用のブログです。ここに書いた内容が少しでも参考になれば嬉しいです。

【Python】LINEにメッセージを送る方法

はじめに

こんにちは。今回はPythonプログラムからLineのトークルームにメッセージを投稿する機能を実装したので、その方法について書きました。
参考にしてもらえると嬉しいです。

前準備

Pythonでメッセージ投稿プログラムを書く前に、準備作業としてLine側の設定をしておきます。
すでにLINEが他のWebサービスかと連携してメッセージを投稿できる機能を用意してくれているので、これを使用します。

LINE Notifyという機能ですね。
notify-bot.line.me

では上のページにアクセスし、連携に必要なアクセストークンを発行します。

右上の「ログイン」をクリックします。
f:id:J-back:20210919232139p:plain:w600


自分のLINEアカウントでログインします。
f:id:J-back:20210919232220p:plain:w600


メールアドレスとパスワードを正確に入力しても以下のようにはじかれてしまう場合、スマートフォン側から「PCへのログイン許可」をOnにして再度やってみましょう。
f:id:J-back:20210919232247p:plain:w600


ログインできたらマイページに移動し、以下の「トークンを発行する」をクリックします。
f:id:J-back:20210919232428p:plain:w600


トークン発行画面になるので、トークン名を入力し、今回は「1:1でLINE Notifyから通知を受け取る」を選択します。
自分にのみ通知が送られてくるような設定ですね。
f:id:J-back:20210919232605p:plain:w600


すると以下のようにトークンが発行されます。
これはPythonで連携する際に使用するので、コピーして保存しておきましょう。
f:id:J-back:20210919232641p:plain:w600


これでLINE側の準備作業は完了です。

Pythonのコード

Pythonのコードですが、上記で発行したアクセストークンを記載してLINE NotifyのAPIにhttpリクエストを送ることでメッセージを投稿することができます。
下のAPIのドキュメントを参考にし、pythonプログラム中からpostリクエストによってメッセージを送信するようにしています。
notify-bot.line.me

import requests

def linePost(message):
    LINE_URL = 'https://notify-api.line.me/api/notify'
    TOKEN = 'xxxxxxxxx'
 
    headers = {'Authorization':'Bearer '+ TOKEN}
    sendData = {'message': message}
 
    requests.post(LINE_URL, headers=headers, data=sendData)
 
sendMessage = 'python-LINE連携\nテストメッセージ'
linePost(sendMessage)


TOKEN = 'xxxxxxxxx'の部分は皆さんそれぞれが取得したアクセストークンに書き換えてください。



上記を実行すると、LINEにメッセージが投稿されました!
f:id:J-back:20210920182453p:plain:w400

おわりに

今回はPythonからLINE NotifyのAPIを経由してLINEのトークルームにメッセージを送る方法について書きました。
以外と簡単に実装できたな、という印象です。
APIのドキュメントを見る限り画像も送ることができるようですので、こちらは実装することがあればまた書きます。

参考になれば嬉しいです。最後まで読んでいただきありがとうございました。