iT邦幫忙

0

【LINE BOT 翻譯機器人】(4) 用 Google Apps Script API 傳送 LINE 訊息

  • 分享至 

  • xImage
  •  

認證身份 channel access token

  • 記得有用到訊息傳送就必須要用到channel access token喔~
//認證身份 channel_access_token
var CHANNEL_ACCESS_TOKEN='??????' //輸入自己 LINE BOT 的 channel_access_token

回傳 User ID 機器人

1.首先到官方網站確認自己LINE BOT的channel access token並複製下來

2.進入Google Apps Script專案內,打入簡單的測試用code

//認證身份 channel_access_token
var CHANNEL_ACCESS_TOKEN='??????' //輸入自己 LINE BOT 的 channel_access_token

//主程式跑的地方(main)
function doPost(e)  {  //當網頁有Post請求時就會依據網址來執行這doPost
  var msg= JSON.parse(e.postData.contents); //將事件(e)內的文字訊息解析出來
  //msg內部存放著全部LINE事件產生的全部訊息
  var replyToken = msg.events[0].replyToken; //replyToken是每個能夠reply的事件一定會附屬的令牌
  var userMessage = msg.events[0].message.text; //解析使用者傳出的訊息內容
  var userid=msg.events[0].source.userId; //專屬於你的User ID
  reply_message(replyToken,userid); //使用reply_message這function來回覆訊息
}

// 這是對於訊息回覆的程式碼
// https://api.line.me/v2/bot/message/reply 為官方公告的 reply api
function reply_message(replyToken,reply,url='https://api.line.me/v2/bot/message/reply'){
  UrlFetchApp.fetch(url, {
      'headers': { //JavaScript的headers
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, //帶入LINE BOT的channel_access_token
      },
      'method': 'post', //使用POST的方式回傳
      'payload': JSON.stringify({ //將訊息轉為JSON格式,JavaScript常用JSON傳輸資料
        'replyToken': replyToken,  //每個reply事件專屬的replyToken
        'messages': [{'type': 'text','text':reply}] //回傳文字訊息,內容為reply也就是userMessage
        }),
    });
} 

3.按下儲存並依照上一篇教學方式新增部屬 (方式如同上一篇)

4.去到原先創立LINE BOT的官方網頁並改掉Webhook URL (同上一篇)

5.最後去跟LINE BOT對話,他將會回覆你的User ID


LINE BOT 訊息傳送方式

  • LINE BOT 總共提供了三種的訊息傳送的方式
    1.reply message (有一對一回覆的限制,而且一次只能回覆一次的限制)
    2.push message (可以在任何的時機下自由的向一個地方傳送訊息)
    3.multicast message (就是一個可以一次向多個地方傳送訊息的功能,屬於PUSH的加強版)
  • 其中reply是完全免費;而push、multicast兩個合計每個月都有一定的上限次數

利用 Google Apps Script 傳送 LINE 訊息

1.reply message

// 上方的 reply_message 就是用來回覆 reply message 的
// 為了節省版面這邊就不在次附上

2.multicast/push message

// 為了方便起見,我個人都只有使用multicast來傳送訊息,所以這邊就附上multicast的程式碼
// 另外若想要用push來傳送訊息就只需要更改成push以及單純使用一個使用者(userid)就可以了
function push_message_userid(reply,userid){
  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/multicast', {
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
      },
      'method': 'post',
      'payload': JSON.stringify({
        'to':[userid],
        'messages': [{'type': 'text','text': reply}]
        }),
    });
}

傳送測試訊息

  • 我個人常常運用push_message_userid傳送給自己來Debug
//認證身份 channel_access_token
var CHANNEL_ACCESS_TOKEN='??????' //輸入自己 LINE BOT 的 channel_access_token

function myfunction(e){
  userid='??????' //輸入自己 userid (剛剛上面機器人回傳的那亂碼)
  push_message_userid("測試文字",userid)
}

// 記得push_message_userid也要放在檔案內喔~~
function push_message_userid(reply,userid){
  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/multicast', {
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
      },
      'method': 'post',
      'payload': JSON.stringify({
        'to':[userid],
        'messages': [{'type': 'text','text': reply}]
        }),
    });
}
  • 在Google Apps Script執行完後,LINE就會馬上跳出訊息了~

【LINE BOT 翻譯機器人】 系列

(1) 操作說明與應用
(2) 建立LINE BOT及Google Apps Script專案
(3) 連結 Google sheet 與 LanguageApp 翻譯功能
(4) 用 Google Apps Script API 傳送 LINE 訊息
(5) LINE 各事件 event & 各訊息 Message 及 官方文獻
(6) 為各位呈現 原始程式碼 啦~~


接案 (☛´∀`*)☛ LINE ID:albert20699

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

1 則留言

0
dancegame
iT邦新手 5 級 ‧ 2023-05-30 11:31:09

請問一下,新增google apps script,他會要求建立Google Cloud Platform (GCP) Project,怎麼沒看見相關設定流程?主要是我碰到建立Project 後,如果不發布app,每七天就需要手動認授權,想了解如何不發佈也能開發小工具

他只有在第一次會跳出"想要存取您的 Google 帳戶的警示",你只要允許就可以,我還沒有遇過要求建立Google Cloud Platform (GCP) Project的問題

我在想會不會google帳號的問題?
但基本上我手邊每一個帳號,不管是機構還是個人帳號,都沒有被要求建立Google Cloud Platform

另外其他人的文也無你提到的問題
https://www.youtube.com/watch?v=fKTnjZfPVh4&ab_channel=PAPAYA%E9%9B%BB%E8%85%A6%E6%95%99%E5%AE%A4
https://ithelp.ithome.com.tw/articles/10266876

看你有沒有辦法提供截圖或私訊我,我才能更了解你的問題

我要留言

立即登入留言