Symfoware

Symfowareについての考察blog

LINE 素のPythonでpush通知を送信する

LINE developersでMessaging APIの設定を行いました。
LINE developersアカウントの登録とMessaging APIの基本設定

「プッシュメッセージを送る」のドキュメントを見てみます。
プッシュメッセージを送る

shell(curl)のサンプルを見る感じ、特にライブラリを使用せず送信できる気がします。
王道はline-bot-sdk-python
https://github.com/line/line-bot-sdk-python
これを使うのでしょうが、ノーマルなPythonだけでプッシュメッセージを送信してみます。


channel access tokenとユーザーID



メッセージを送信するために2つのキーが必要です。

「channel access token」

デベロッパーサイトを見てみるとまだ未発行のようです。
「再発行」をクリック。

872_01.png


再発行の確認ダイアログが表示されるので「再発行」をクリック。

872_02.png


結構長いアクセストークンが発行されました。
これを送信時に使用します。

872_03.png


「to」

送信先のIDが必要です。
「その他」の項目に「Your user ID」があります。
これが自分自身のLINE IDになるので、こちらを値を指定します。

872_04.png




送信のサンプルプログラム



PythonからREST API経由でRedmineにチケットを登録する(XML,JSON使用)
こちらを参考に、PythonでJSON形式のデータをpostしてやります。


  1. # -*- coding:utf-8 -*-
  2. import urllib2
  3. import json
  4. url = 'https://api.line.me/v2/bot/message/push'
  5. channel_access_token = '[作成したchannel_access_token]'
  6. user_id = '[Your user IDに表示されている値]'
  7. # 送信用のデータ
  8. data = {
  9.     'to' : user_id,
  10.     'messages' : [
  11.         {
  12.             'type' : 'text',
  13.             'text' : 'Hello, world! from api'
  14.         }
  15.     ]
  16. }
  17. jsonstr = json.dumps(data)
  18. print(jsonstr)
  19. # Content-Type:application/json
  20. # Authorization:Bearer {channel access token}
  21. # method:post
  22. request = urllib2.Request(url, data=jsonstr)
  23. request.add_header('Content-Type', 'application/json')
  24. request.add_header('Authorization', 'Bearer ' + channel_access_token)
  25. request.get_method = lambda: 'POST'
  26. # 送信実行
  27. response = urllib2.urlopen(request)
  28. ret = response.read()
  29. print('Response:', ret)




プログラムを実行してみると、見事プッシュ通知されました。

872_05.png

872_06.png

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/05/04(金) 00:57:30|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<LINE API + Pythonでスタンプや画像メッセージの送信 | ホーム | LINE developersアカウントの登録とMessaging APIの基本設定>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/2167-c7f328fe
この記事にトラックバックする(FC2ブログユーザー)