大家好 , 我使用LINE_message_API 串接官方帳號, 想做在官方帳號輸入某些關鍵字,就可以
查詢別的API所回傳的數值. 比方說我在LINE 官方帳號中輸入蛋價,此時會讀取蛋價的API後,
回傳蛋價的數值到LINE官方帳號給使用者.
我不太理解, 我在外面讀取了API後,轉成price 為我要的展示的文字數值,在文字輸入雞蛋
內寫入text = print(price) 就是會出現錯誤.... 請問那要用什麼樣的語法才能順利讀取到值在LINE官方帳號中顯示給使用者? 感謝大家回應!
如下截圖
from linebot.models import (
MessageEvent, TextMessage, StickerMessage, TextSendMessage, ImageSendMessage, StickerSendMessage, LocationSendMessage, TemplateSendMessage, ButtonsTemplate, PostbackAction, MessageAction, URIAction, CarouselTemplate, CarouselColumn, QuickReply, QuickReplyButton
)
#引用requests模組
import requests
import json
url = "https://data.coa.gov.tw/Service/OpenData/FromM/PoultryTransBoiledChickenData.aspx"
res = requests.get(url)
# print(res)
data = res.json()
# print(json.dumps(data, indent=2, ensure_ascii=False))
for r in data:
# print(data[0]["Name"])
price = (r["日期"],r["雞蛋(產地)"],f"元/台斤")
# print(price)
break
# 官方文件
# https://github.com/line/line-bot-sdk-python
# 常見問答表
faq = {
'每周雞蛋生產量': ImageSendMessage(
original_content_url='https://www.coa.gov.tw/files/egg_img/15/A01_1.jpg',
preview_image_url='https://www.coa.gov.tw/files/egg_img/15/A01_1.jpg'
),
'本周產地平均蛋價': TextSendMessage(
print(price)
),
'雞蛋': TemplateSendMessage(
alt_text='雞蛋選單',
template=CarouselTemplate(
columns=[
CarouselColumn(
# 匯率選單一圖片網址
thumbnail_image_url='https://static.rti.org.tw/assets/thumbnails/2022/01/27/20220127000011M.jpg',
title='雞蛋生產資訊',
text='查詢雞蛋生產資訊',
actions=[
MessageAction(
label='本日產地平均蛋價',
text='本日產地平均蛋價'
),
MessageAction(
label='每周雞蛋生產量',
text='每周雞蛋生產量'
),
MessageAction(
label='雞蛋生產者朔源查詢',
text='請輸入生產者朔源編號 EX:5010000115'
)
]
),
CarouselColumn(
# 匯率選單二圖片網址
thumbnail_image_url='https://cdn1.cybassets.com/s/files/20405/theme/72342/assets/img/1637332347_c7c7d746_navbar_logo.png?1637332348',
title='預訂雞蛋',
text='農委會認可預定通路',
actions=[
MessageAction(
label='My Egg認養方案',
text='網址1'
),
MessageAction(
label='傻蛋定期配送',
text='網址2'
),
MessageAction(
label='雞運來了',
text='@eggopptyexpress'
)
]
)
]
)
)
}
# 主選單
menu = TextSendMessage(
text="没有数据"
)
TextSendMessage那地方絕對不可能那樣寫
你是要傳訊息出去,而不是要把東西print在終端機上
TextSendMessage那邊應該是要改成
'本周產地平均蛋價': TextSendMessage(
text = str(price)
)
TextSendMessage()裡面要放參數text就是傳遞出去的文字
有關sendmsg相關文件請參考:https://github.com/line/line-bot-sdk-python/blob/master/linebot/models/send_messages.py