气象机器人 (4)
在“气象机器人 (1)~气象机器人 (3)”的系列文章里,已经完整实出 LINE 的气象机器人,这篇教学会替气象机器人新增图文选单,只要点击图文选单的按钮就能让机器人快速提供气象信息,最后再将机器人部署到 Google Cloud Functions 里,成为可以 24 小时运作不间断的气象机器人。
参考:
加入图文选单
参考“建立图文选单”教学,下载范例图片放入 Google 云端硬盘里 ( 和 Colab 程序放在同一个目录 )。
范例图片:下载链接
接着依序输入下列的程序码,替 LINE 气象机器人加入图文选单,第一组程序码,设定图片与按钮位置,产生图文选单 id ( 输入自己的 access token ):
import requests
import json
headers = {'Authorization':'Bearer 你的 access token','Content-Type':'application/json'}
body = {
'size': {'width': 2500, 'height': 640}, # 設定尺寸
'selected': 'true', # 預設是否顯示
'name': 'bbb', # 選單名稱
'chatBarText': 'b', # 選單在 LINE 顯示的標題
'areas':[ # 選單內容
{
'bounds': {'x': 0, 'y': 0, 'width': 1250, 'height': 640}, # 選單位置與大小
'action': {'type': 'uri', 'uri': 'https://line.me/R/nv/location/'} # 點擊後開啟地圖定位,傳送位置資訊
},
{
'bounds': {'x': 1251, 'y': 0, 'width':625, 'height': 640}, # 選單位置與大小
'action': {'type': 'message', 'text':'雷達回波圖'} # 點擊後傳送文字
},
{
'bounds': {'x': 1879, 'y': 0, 'width':625, 'height': 640}, # 選單位置與大小
'action': {'type': 'message', 'text':'地震資訊'} # 點擊後傳送文字
}
]
}
# 向指定網址發送 request
req = requests.request('POST', 'https://api.line.me/v2/bot/richmenu',
headers=headers,data=json.dumps(body).encode('utf-8'))
# 印出得到的結果
print(req.text)
第二组程序码,将图文选单绑定图片 ( 输入自己的 access token 和图文选单 id ):
from linebot import LineBotApi, WebhookHandler
line_bot_api = LineBotApi('你的 access token')
with open("/content/drive/MyDrive/Colab Notebooks/line-bot-weather-demo.jpg", 'rb') as f:
line_bot_api.set_rich_menu_image("圖文選單 id", "image/jpeg", f)
第三组程序码,将图文选单与 LINE BOT 绑定 ( 输入自己的 access token 和图文选单 id ):
import requests
headers = {"Authorization":"Bearer 你的 access token", "Content-Type":"application/json"}
req = requests.request('POST', 'https://api.line.me/v2/bot/user/all/richmenu/圖文選單 id',
headers=headers)
print(req.text)
完成后,在气象机器人的聊天画面下方,就会出现图文选单,点击图文选单,就会出现对应的动作。
部署程序到 Google Cloud Funcions
参考“使用 Google Cloud Functions”教学,进入 Google Cloud functions 并打开一个新的专案,触发条件勾选允许未经验证的调用。
环境设定为 Python 3.10,点击 requirements.txt,加入 line-bot-sdk 和 requests ( 画面为 CloudFunctions 第二代 )。
line-bot-sdk
requests
点击 main.py,下载并打开范例程序,填入自己的 access token、channel secret 和气象数据平台的授权码,将进入点改为 linebot。
- 完整范例程序下载:line-bot-weather-cloudfunctions.py
完成后点击部署,部署完成后前方会出现绿色打勾图示。
点击进入专案,点选“触发条件”,复制触发网址,回到 LINE Developer 控制台,将 Webhook 更新为触发的网址。
验证通过后,就完成了一个可以 24 小时运作的 LINE 气象机器人。
小结
透过这系列的教学,就能打造出一个具有图文选单,且能 24 小时运作的 LINE 气象机器人,如果活用相关的技巧,就能让机器人的功能更为强大啰!
微信扫码关注
抖音扫码关注