LINE Notify API
前回、PythonのTwitter API制御ライブラリtweepyを使って、自分のタイムラインの中から条件に合うフォローしていないアカウントを探すプログラムを作成してみました。

しかしプログラムを作成して、条件に合うアカウント名を取得できたのはいいですが、どうやってその情報をTwitterまで手間なく持っていくかが問題でした。
そこでtweepyで取得したアカウント名(アカウントのURL)をLINEに送り、LINEからTwitterを開き、フォローするという流れでスマートフォンで全て完結できるようにしようと企みました。
ということでまずはLINEにメッセージを送るため、LINEのAPIを勉強しようというのが今回のお話です。
ちなみにLINEのAPIは「LINE Notify API」という名称らしいです。
それでは始めていきましょう。
LINE Notify APIのアクセストークンの取得
まずはLINE Notify APIに接続するためのアクセストークンを取得します。
LINE Notifyのページにアクセスします。
右上のログインをクリックします。

ログイン画面が出てきますが、私の場合はここで困りました。
LINEなんてもう何年もアプリで使っており、ログイン作業をせずにしようしているため、ここで何を入力していいか分からなかったのです。
そんな時メールアドレスの入力欄の右端に「?」マークがあるのを見て、クリックしてみました。

すると親切にも「アカウント情報はLINEアプリの「設定>アカウント」から確認できます。」と確認方法が現れました。
ということでどのメールアドレスで登録してあるか分からない人はアプリの中で確認してください。

ログインに成功すると最初の画面に戻りますが、右上の「ログイン」だったところが「ユーザー名」に変わっています。

右上のユーザー名をクリックして、「マイページ」をクリックします。

マイページに移動すると「連携中サービス」と出てきますが、これはスルーして、下に移動します。

下の方に「アクセストークンの発行(開発者向け)」と書かれている項目が見つかります。
ここの「トークンを発行する」のボタンをクリックします。

「トークン名」に適当な名前を、通知を送信するトークルームは「1:1でLINE Notifyから通知を受け取る」を選択し、画面下の「発行する」をクリックします。

発行されたトークンが表示されますが、ここで注意です。
表示されたウインドウを閉じると2度とこのトークンを出すことはできないとのことです。
またトークンは見えている分だけでななく、さらに右に続いていますので、スクリーンショットでは全部を保存できません。
保存するにはウインドウ左下の「コピー」をクリックし、テキストエディタなどに貼り付けることを強くお勧めします。

連携中サービスに「歯車マーク > 自分のアカウント」となっていればLINE Notify APIの設定は完了です。

また設定が完了すると、LINEにこんな感じでメッセージが届きます。

LINE Notify APIにテストメッセージを送信
それではLINE Notify APIの使い方を勉強していきましょう。
今やりたいこととしてはPythonプログラムからLINE Notify APIを介して、自分のLINEアカウントにメッセージを送りたいということです。
ということで作成したテスト用のプログラムがこちら。
import requests
line_notify_token = ' 取得したアクセストークン '
line_notify_api = 'https://notify-api.line.me/api/notify'
def sendmessage():
headers = {'Authorization': f'Bearer {line_notify_token}'}
data = {'message': 'message:test'}
requests.post(line_notify_api, headers = headers, data = data)
def main():
sendmessage()
if __name__ == '__main__':
main()
それでは解説していきましょう。
まずは設定部分です。
import requests
line_notify_token = ' 取得したアクセストークン '
line_notify_api = 'https://notify-api.line.me/api/notify'
LINE Notify APIを介してメッセージを送るには、requestsを使いますので、まずはrequestsのインポート。
そして先ほど取得したアクセストークンを変数に格納しておきます。
またLINE Notify APIで接続する先のURLをline_notify_apiに格納しました。
次はメッセージを送るための関数の部分。
def sendmessage():
headers = {'Authorization': f'Bearer {line_notify_token}'}
data = {'message': 'message:test'}
requests.post(line_notify_api, headers = headers, data = data)
これは下から解説した方がわかりやすいかもしれません。
最終的に必要な形はこんな形。
requests.post(line_notify_api, headers = headers, data = data)
requests.postを使って、LINE Notify APIの接続先のURL、認証用のheader情報、送信するメッセージが必要になります。
そのため変数headersに認証の情報、変数dataに送信するメッセージを格納しているというわけです。
headers = {'Authorization': f'Bearer {line_notify_token}'}
data = {'message': 'message:test'}
ただ変数dataの方は辞書形式で、「message」をキーとして、要素「f’message:test’」が格納されています。
つまりメッセージを送信したい場合はキー「message」でその要素に送りたいメッセージを書けばいいというわけです。
もしかしたら他の機能をもつキーがあるかもしれませんが、今回は深追いはしません。
また必要になったら勉強することにします。
とりあえず今回は「’message:test’」を送信してみることにしました。
main関数の部分はPython実行ファイルとしているだけですので、解説は省略します。
そして実行してみたのがこちら。

画像では2回実行していますが、とにかくちゃんとメッセージがLINEに送信できるようになりました。
ということで次回は前回作成した「自分のタイムラインの中から条件に合うフォローしていないアカウントを探すプログラム」にこのLINE Notify APIを組み込んでいくことにしましょう。

ではでは今回はこんな感じで。
コメント