(この記事は Python 3.7 ベースで作成されています)
LINE WORKS v2.6 で、Bot に Quick Reply機能が追加されましたので、送信テストを行ってみました。
Quick Reply とは
スタンプや画像その他すべてのメッセージ形式に追加でき、返信方法もテキスト以外にカメラや地図も選べるため、定型の返信を促したい場合などに便利です。
また、postback を用いることで、実際のトーク画面では "起きた" を表示しつつ Bot 側には "action=yes&itemid=123" というような値を渡すこともできます。
QuickReply のテスト
Python で Quick Reply つきメッセージ送信を送ってみました。
send_message_w_qr.py
import json
import requests
#QuickReply つきメッセージ送信。Message はテキスト、QuickReply はJSON形式のリスト渡す。
def send_message_QR(BotNo, TargetId, Message, QRmessage):
#リクエストURLの作成
apiheadurl = 'https://apis.worksmobile.com/r'
apicategory = 'message/v1'
apitarget= 'bot'
apiurl= '/'.join([apiheadurl,APIID,apicategory,apitarget,str(BotNo),'message/push'])
#ヘッダー情報
header = {
'consumerKey': {Server API Consumer Key},
'Authorization': 'Bearer ' + {サーバー認証 Token},
'Content-Type': 'application/json'
}
#送信ボディ
payload = {
'accountId' : TargetId,
'content' : {
'type': 'text',
'text': Message,
'quickReply':{'items':QRmessage}
}
}
#送信
r = requests.post(apiurl, headers = header, data = json.dumps(payload))
if r.status_code ==200:
return True
else:
return False, r
# Quick reply メッセージリストの用意
QRMS = [
{'action':{'type':'message','label':'起きた','text':'おきた','psotback':'action=yes&item=12'}},
{'action':{'type':'message','label':'寝坊した','text':'ねむい'}},
{'action':{'type':'message','label':'な、何が起こったのか…','text':'ポル'}}
]
#メッセージの送信
send_sticker_QR({Bot 番号},{送信先のメンバー},{送信するメッセージ文}, QRMS)
Quick Reply は content パラメータ内で、各メッセージの後に quickreply を追加するだけで簡単に送信することができます。