いいものをつくろう

CTOの日記

python

pythonで自分のLINEアカウントにメッセージを送る

投稿日:

 

やりたいことは

自分のLINEアカウントにpythonスクリプトからメッセージを送ることです。

実際的な用途としては

なんらかのWebサービスで、特定のイベントが起こったことを、自分に知らせて欲しいなぁ

と考えています。

 

 

調べてみる LINE Notifyが適当そうです。LINE Message APIはbotアカウントで会話する用とお見受けしました。

 

それではLINE Notifyとは何か?公式LNE Notifyによると

「Webサービスからの通知をLINEで受信」とあります。

 

仕組を踏まえて噛み砕くと、

A:http通信できて、誰かのTokenを知っている。

B:LINEアカウントでToken発行する

という条件が揃えば、「AさんはBさんにLINEメッセできます」というサービスです。

 

なので、IFTTTとかと繋いで明日の天候の条件によって通知してもらったりできます。

IOT的に家のACが切れたらライン通知とかも便利ですよね。

 

今回は自作のかんたんなWebサービスとの連携が目的です。

そして、通信はA から Bへの一方通行です

 

 

手順をいいます。私の所要時間は15分くらいです。

1,自分のアカウントでTokenを発行する

右上のログインからログインしたら下の写真のように

右上からMy Pageへ

そしたら

アクセストークン発行(開発者向け)がありますのでトークンを発行をクリックします。

以下のようなポップアップ画面に赤文字でトークンが書かれていますので

どこかに保存しておきましょう。閉じるを押すとトークンは二度と表示されないので、しっかり保存してから閉じてください。

トークンを発行し終えると、マイページにトークン名と連携されたトークが表示されます。解除したい場合もここからいつでもできます。

 

 

2,Webサービス(かんたんなpythonスクリプト)からメッセをおくる

pip install requests

import requests
import os
url = "https://notify-api.line.me/api/notify"
access_token = os.environ['LINETOKEN']
headers = {'Authorization': 'Bearer ' + access_token}

message = 'Your message goes here'
payload = {'message': message}
r = requests.post(url, headers=headers, params=payload,)

実行すると

python notifier.py
Traceback (most recent call last):
  File "notifier.py", line 4, in <module>
    access_token = os.environ['LINETOKEN']
    raise KeyError(key) from None
KeyError: 'LINETOKEN'

KerErrorが発生しますので、実行前に変数にアクセストークンをセットしておきましょう。

 

3,実行

python notifier.py

ちゃんとトークンがセットされていれば、エラーなしで終了して瞬時にLINE Notifyというトークにメッセージが届きます。トークン発行した時点でいくつかメッセがとんでるようでした。

 

 

とこれだけで

メッセがおくれるようになりました。

他にスティッカーもおくれたりしますので

APIドキュメントをチェックしてみましょう。

どきゅめんとにはなにやらoauthとやたら説明がありますね。

これは、今回は自らアクセストークンをマイページUIから発行しましたが

 

あなたがwebサービスをつくって、

ユーザーのとあるAさんがwebサービスを訪れて、oauth2でLINE認証して

くれればAさんに通知できますよ

というようなことができるようです。

 

以上です

-python

Copyright© CTOの日記 , 2020 All Rights Reserved.