iT邦幫忙

1

Python , 串接LINE_message_API 疑問

  • 分享至 

  • xImage

大家好 , 我使用LINE_message_API 串接官方帳號, 想做在官方帳號輸入某些關鍵字,就可以
查詢別的API所回傳的數值. 比方說我在LINE 官方帳號中輸入蛋價,此時會讀取蛋價的API後,
回傳蛋價的數值到LINE官方帳號給使用者.

我不太理解, 我在外面讀取了API後,轉成price 為我要的展示的文字數值,在文字輸入雞蛋
內寫入text = print(price) 就是會出現錯誤.... 請問那要用什麼樣的語法才能順利讀取到值在LINE官方帳號中顯示給使用者? 感謝大家回應!

如下截圖
https://ithelp.ithome.com.tw/upload/images/20221102/201534755NuYqIvcox.png

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="没有数据"
)

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
tryit
iT邦研究生 4 級 ‧ 2022-11-03 06:48:00
最佳解答

TextSendMessage那地方絕對不可能那樣寫
你是要傳訊息出去,而不是要把東西print在終端機上

TextSendMessage那邊應該是要改成

'本周產地平均蛋價': TextSendMessage(
          text = str(price)
)
0
hello02923
iT邦新手 5 級 ‧ 2022-11-03 16:34:59

TextSendMessage()裡面要放參數text就是傳遞出去的文字

有關sendmsg相關文件請參考:https://github.com/line/line-bot-sdk-python/blob/master/linebot/models/send_messages.py

我要發表回答

立即登入回答