【LINE BOT 翻译机器人】(4) 用 Google Apps Script API 传送 LINE 讯息

认证身份 channel access token

记得有用到讯息传送就必须要用到channel access token喔~
//认证身份 channel_access_tokenvar CHANNEL_ACCESS_TOKEN='??????' //输入自己 LINE BOT 的 channel_access_token

回传 User ID 机器人

1.首先到官方网站确认自己LINE BOT的channel access token并複製下来

2.进入Google Apps Script专案内,打入简单的测试用code

//认证身份 channel_access_tokenvar 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 apifunction 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_tokenvar CHANNEL_ACCESS_TOKEN='??????' //输入自己 LINE BOT 的 channel_access_tokenfunction 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

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章