Symfoware

Symfowareについての考察blog

LINE API + Pythonでスタンプや画像メッセージの送信

素のPythonで、LINEにプッシュ通知を送ってみました。
LINE 素のPythonでpush通知を送信する

今度はスタンプや画像のメッセージを送信してみます。
今回もライブラリは使用せず、素のPythonのみで実行してみます。


スタンプメッセージの送信



スタンプメッセージ

送信するデータはこのような形式になります。


  1. {
  2. "type": "sticker",
  3. "packageId": "[スタンプセットのパッケージID]",
  4. "stickerId": "[スタンプID]"
  5. }



「スタンプセットのパッケージID」や「スタンプID」はこちらの資料参照。
スタンプリスト

873_01.png

「STKPKGID」がスタンプセットのパッケージID
「STKID」がスタンプIDとなるようです。

パッケージID:2
スタンプID:144
のスタンプを送信してみます。


  1. import urllib2
  2. import json
  3. url = 'https://api.line.me/v2/bot/message/push'
  4. channel_access_token = '[user_channel_access_token]'
  5. user_id = '[user_user_id]'
  6. # 送信用のデータ
  7. data = {
  8.     'to' : user_id,
  9.     'messages' : [
  10.         {
  11.             'type' : 'sticker', # スタンプ
  12.             'packageId' : 2, # スタンプのパッケージID
  13.             'stickerId' : 144 # スタンプID
  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)



届きました!

873_02.png

873_03.png



画像メッセージの送信



送信するデータはこのような形式になります。

画像メッセージ


  1. {
  2.     "type": "image",
  3.     "originalContentUrl": "https://example.com/original.jpg",
  4.     "previewImageUrl": "https://example.com/preview.jpg"
  5. }



originalContentUrlは、画像のURLを指定します。
最大画像サイズ:1024x1024
最大ファイルサイズ:1MB
httpsでアクセスできるjpeg画像

previewImageUrlは、プレビュー画像のURLを指定します。
最大画像サイズ:240x240
最大ファイルサイズ:1MB
httpsでアクセスできるjpeg画像


  1. import urllib2
  2. import json
  3. url = 'https://api.line.me/v2/bot/message/push'
  4. channel_access_token = '[user_channel_access_token]'
  5. user_id = '[user_user_id]'
  6. # 送信用のデータ
  7. data = {
  8.     'to' : user_id,
  9.     'messages' : [
  10.         {
  11.             'type' : 'image', # 画像
  12.             'originalContentUrl' : 'https://symfo.web.fc2.com/sample_src/lena.jpg', # 画像のURL
  13.             'previewImageUrl' : 'https://symfo.web.fc2.com/sample_src/lena_preview.jpg' # 画像のサムネール
  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)



画像を送信するとこんな感じになりました。

873_04.png

873_05.png

関連記事

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

  1. 2018/05/04(金) 13:41:23|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Google App Engine + Pythonでローカル実行、サーバー実行時のログの出力 | ホーム | LINE 素のPythonでpush通知を送信する>>

コメント

コメントの投稿


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

トラックバック

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