iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
自我挑戰組

30天建構出一個簡單 LineBot 機器人系列 第 29

DAY 29 額外功能介紹

  • 分享至 

  • xImage
  •  

前面介紹了很多基本功能也介紹了編編們製作的專案,除此之外line官方也有很多的套件,LIFF也有很多額外的功能,今天就挑了兩個小功能來介紹一下~


Share Target Picker

什麼是 Share Target Picker

ShareTargetPicker主要是讓人能從LIFF選擇訊息的分享對象並直接發送。
這讓原本必須透過打字傳送的文字,變成可以直接按按鈕發送,並且可以同時選擇多個對象(最多10個),是一個非常便捷的功能!

有幾個需要注意的點:

  • 僅可以在 LIFF v2 中使用。
  • Share Target Picker發出的消息就像平常打字傳給朋友一樣,是來自用戶方的消息。
  • 各式各樣的類型都可以發送,例如:純文字、圖像視頻、音頻、位置、Template Message(僅URI操作)和Flex消息等。
  • 在外部瀏覽器也可以使用,但必須先用LINE Login 進行身份驗證

使用方式

  1. 使用之前必須先打開 LINE Developers Console 的LIFF裡的使用者條款。
  2. 再透過以下方式呼叫 liff.shareTargetPicker()
liff.shareTargetPicker([
  {
    type: "text",
    text: "this is a test"
  }
])

  .then(
    alert("ShareTargetPicker was launched")
  ).catch(function(res) {
    alert("Failed to launch ShareTargetPicker")
  })

在頁面上建立一個或多個按鈕來發送想要快速傳遞的訊息吧!


更改頭像顯示圖示及其名稱

這算是一個有趣的小功能,一般跟機器人對話時出現的都會是我們機器人設定的頭貼,但這是可以改變的!

這邊以Python 的 SDK 套件來說明~
一開始先安裝套件:

pip install line-bot-sdk

然後我們主要是要用Sender這樣東西,所以先把他import進來:

from linebot.models import Sender

再來是Sender的用法,他主要有兩個參數:

  • name參數
    • 字數上限:20
  • icon_url參數
    • 字數上限:20
    • 網址只能用https的
    • 圖片格式需為png,長寬比要是1:1不然可能會變形
    • 大小不能超過1MB

語法如下:

line_bot_api.reply_message(
    event.reply_token,
    TextSendMessage(
        text='這是則文字訊息。',
        sender=Sender(
            name="<顯示名稱>",
            icon_url="<顯示圖示網址>")
    )
)

參考圖如下:

(圖片來自: LINE Developer News)

也可以一次回覆多則訊息:

message1 = TextSendMessage(
    text=f"以下為\"{event.message.text}\"的搜尋結果...",
    sender=Sender(
        name="Google",
        icon_url="https://storage.googleapis.com/support-kms-prod/ZAl1gIwyUsvfwxoW9ns47iJFioHXODBbIkrK")
)
message2 = TextSendMessage(
    text="哈囉~很高興為您服務",
    sender=Sender(
        name="Apple",
        icon_url="https://www.yusgroup.com.hk/wp-content/uploads/2012/03/Apple-Logo.jpg")
)
message3 = TextSendMessage(
    text=f"這邊有您需要的東西,可以看看",
    sender=Sender(
        name="Amazon",
        icon_url="https://pngimg.com/uploads/amazon/amazon_PNG27.png")
)


messages = [message1, message2, message3]
line_bot_api.reply_message(event.reply_token, messages)

以上就是這次的小教學~有沒有更了解LINE Bot的應用了呢?
快點來試試看吧~٩(ˊᗜˋ*)و✧*。


上一篇
DAY 28 LINE Beacon介紹
下一篇
DAY 30 總結
系列文
30天建構出一個簡單 LineBot 機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
arguskao
iT邦新手 3 級 ‧ 2022-12-13 22:57:55

再透過以下方式呼叫 liff.shareTargetPicker():

底下的程式寫在哪裡?

我要留言

立即登入留言