iT邦幫忙

0

(已解決)Google App Script Line ChatBot 連續回復

  • 分享至 

  • xImage

第一次發問,請小力鞭...

想要在 Google App Script Line ChatBot 利用關鍵字連續回復文字和影片,請問要如何實現呢?

目前的程式碼如下:

https://ithelp.ithome.com.tw/upload/images/20211023/20140066LaKYNzrtkE.png

看更多先前的討論...收起先前的討論...
請問你的連續回覆是
1.
使用者打了A文字 機器人回了B和C兩則回覆
例:
使用者:你好
機器人:你好
機器人:今天需要使用什麼服務
若是這種請在你的reply_message陣列內多新增你需要的訊息即可
reply_message = [
{type:text}, // 訊息一
{type:video} // 訊息二
]
最多可以放三個至五個訊息(不太記得了)
*請注意 遵循Line message開發標準的JSON樣式否則會失敗 (尤其是影片格式有要求)
請參考:https://developers.line.biz/en/reference/messaging-api/#video-message
2.
使用者打了A文字 機器人問了B 之後使用者再回覆C
例:
使用者:我需要飲料
機器人:請填入飲料內容 冰塊 甜度
使用者:紅茶全糖去冰
這種則需要資料庫或是程式內保存使用者狀態以便後續紀錄
Piglet iT邦研究生 5 級 ‧ 2021-10-25 16:43:23 檢舉
你好,感謝你的回覆,我指的是第一種,但是像上面這樣寫只會出現訊息二,訊息一不會顯示
你有發現她說的跟你寫的有哪裡不一樣嗎
Piglet iT邦研究生 5 級 ‧ 2021-10-25 17:23:49 檢舉
我了解了,謝謝
最終能解決問題就好了 , 是我在撰寫內容的時候沒有詳述重點在哪 這裡回覆似乎不能使用md格式編排 所以看起來會不太明顯 讓你誤會了非常抱歉
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
摩摩楓
iT邦新手 4 級 ‧ 2021-10-25 17:01:16
最佳解答

首先你必須先把訊息一跟訊息二的訊息內容分成兩個reply_message,這樣才是符合LINE Message的格式,下面是text message的範例,你要video或其他的type,要參考LINE的文件

  try {
    var messageJson;
    var messages = [];
    var payload = {
      replyToken: token,
      messages: [{
        'type': 'text',
        'text': '要回覆的文字訊息'
      }]
    };
    //組合多筆messages
    //LINE Messages 的限制,一個Reply最多五組message object
    for (var i = 0, iLen = resArr.length; i < iLen; i++) {
      messageJson = { type: 'text', text: resArr[i] };
      messages.push(messageJson);
      console.log(messages);

    }
    //將messages 組合replyToke
    payload = {
      replyToken: token,
      messages: messages
    };
    UrlFetchApp.fetch(url, {
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
      },
      'method': 'post',
      'payload': JSON.stringify(payload),
    });
  }
  catch (ex) {
    console.log(ex);
  }
Piglet iT邦研究生 5 級 ‧ 2021-10-25 17:24:56 檢舉

感謝回覆~我成功了!

我要發表回答

立即登入回答