昨天写的怎么创建机器人,如果想让机器人有一定的实用价值,还是要进行编程的。
今天所说的是使用谷歌的脚本服务,部署脚本服务通过webhook与********的机器人连接完成,机器人的响应。
********可以使用外部的任何服务,也包括一些智能机器人不错的接口。
废话不多说了,开始
1、首先要有一个谷歌账号,很有用的,搞一个吧。另外,就是要有JavaScript基础。
2、然后google搜索 Google Apps Script 进入在线脚本编程。
或者点击 https://www.google.com/script/start/
然后 “Start Scripting”-->"新建脚本"
3、添加如下代码
function doGet(e){
return HtmlService.createHtmlOutput("你好,我是一个新的机器人服务请求!");
}
function doPost(e){
var dataFromt*m = {
"method": "post",
"payload": e.postData.contents
}
//讲请求数据的内容不符 转JSON对象
var body = JSON.parse(e.postData.contents);
//转为字符型
body.message.chat.id = body.message.chat.id + '';
//处理请求内容和返回结果
var payload = preparePayload(body);
//这是 数据格式
var data = {
"method": "post",
"payload": payload
}
//调用跳转接口,把结果返回给对应Token的********机器人
UrlFetchApp.fetch("https://api.********.org/bot627711111117:ADAxxxxxxxxxxxxxv8E/", data);
}
function preparePayload(body){
var payload;
if (body.message.text){ //接收到文本
var restText = body.message.text;
if(restText.indexOf("名字") >= 0){
restText = "我叫小单!";
}
//消息体
payload = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": restText,
}
}
else if (body.message.sticker){ //接收到表情 直接返回表情
payload = {
"method": "sendSticker",
"chat_id": body.message.chat.id,
"sticker": body.message.sticker.file_id
}
}
else if (body.message.photo){//接收到图片,直接返回图片
array = body.message.photo;
text = array[1];
payload = {
"method": "sendPhoto",
"chat_id": body.message.chat.id,
"photo": text.file_id
}
}
else {
payload = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": " 对不起,无法识别内容!!"
}
}
return payload
}
其中
UrlFetchApp.fetch("https://api.********.org/bot627711111117:ADAxxxxxxxxxxxxxv8E/", data);
红色部分改成自己的Token。
4、发布
点击 最新代码可以测试 ,返回 doGet结果。 复制RUL。
为了访问不报错,和一定的信息安全,可以DECODE一下。
在线工具:
https://www.url-encode-decode.com/
选择账号允许!
5、将两个URL通过webhook拼起来
https://api.********.org/bot6277:AAENk-JAjufs7HxxxE/setwebhook?url=https%3A%2F%2Fscript.google.com%2Fmacros%2Fs%2FAKfycbzNjr_To%2Fexec
放入浏览器访问,如果返回ok 就已经连接上了。
可以使用 getWebhookInfo 查看webhook信息。
{"ok":true,"result":{"url":"https://script.google.com/macros/s/AxxxxxxxxxxTo/exec","has_custom_certificate":false,"pending_update_count":0,"last_error_date":1551864805,"last_error_message":"Wrong response from the webhook: 401 Unauthorized","max_connections":40}}
6、测试机器人