LINE BOTでPUSH送信

PHPで簡易LINEBotを作ってみた
https://kazzstorage.com/linebot-trial/

前回は送られてきたメッセージに対して返信するプログラムを作成しましたが、今回はPCからPythonプログラムを実行してメッセージを送ります。

PUSH送信

PUSH送信は一人に特定のメッセージを送信する機能です。dataのtoに宛先ユーザIDをのっけて送信します。

ポイントは送信先URLです。PUSH専用のAPIが用意されてるんですね。ちなみにアクセストークンとUserIDは、チャネル基本設定に載っています。

# -*- coding: utf-8 -*-
import json
import requests

# HTTPヘッダ
header = {
    "Content-Type": "application/json;charset=UTF-8",
    "Authorization": "Bearer *************..." # アクセストークン
}

# POSTデータ
data = {
    "to": "********************", # 送信先USERID
    "messages": [
        {
            "type": "text",
            "text": "HELLO WORLD!"
        }
    ]
}
	
# dataをJSONに
data = json.dumps(data)

# PUSU送信
ch = "https://api.line.me/v2/bot/message/push"
req = requests.post(ch, headers=header, data=data)

# レスポンス(ステータス)
print(req.status_code)
if req.status_code != 200:
    print(req.text)

実行したらステータスコードが返ってきます。200で成功、400台が認証エラーなど、500台がサーバーエラー。

multicastで複数ユーザに送信

POSTでは一人にしか送信できませんが、multicast送信は複数ユーザーに一斉送信可能です(一度で最大150ユーザ)。

PUSHとの変更点はdataのtoがスカラ配列になったのと、宛先URLがmulticastになっている点ですね。このtoの配列に複数のUSERIDを入れると、全員に送信されるワケです。

# -*- coding: utf-8 -*-
import json
import requests

# HTTPヘッダ
header = {
    "Content-Type": "application/json;charset=UTF-8",
    "Authorization": "Bearer *************..." # アクセストークン
}

# POSTデータ
data = {
    "to": ["********************"], # 送信先USERID
    "messages": [
        {
            "type": "text",
            "text": "HELLO WORLD!"
        }
    ]
}
	
# dataをJSONに
data = json.dumps(data)

# PUSU送信
ch = "https://api.line.me/v2/bot/message/multicast"
req = requests.post(ch, headers=header, data=data)

# レスポンス(ステータス)
print(req.status_code)
if req.status_code != 200:
    print(req.text)

もちろんテキスト以外もPUSHできます。

詳しくはLINEDevelopersのリファレンス
https://developers.line.biz/ja/reference/messaging-api/#message-common-properties

The present writer kazz.

関連記事

+メインPCをwindowsからLinuxにして満足している
+ラズパイのLEDをブラウザで操作してみた
+ブラウザで遊べるリバーシを作る
+SQLノート(MySQL)
+PHPで簡易LINEBotを作ってみた