这篇文章主要写使用google脚本的来做一个简单tgBot对话的,你说什么它会重复你说的。
Telegram 官方API:https://core.telegram.org/bots/api
在编写之前需要去google搜索 google Script console --- 点击 google Apps Script --- start Scripting 。
start Scripnting 之后会进入此界面,
然后点击新增指令,进入脚本界面,如下图所示:
就是在这里开发了,下面google app script 我简称为 gas 吧,在gas里编写脚本可以自由的ctrl+s保存代码,
然后可以点击发布代码,如下图所示 :
点击 部署为网络应用程序 :
在途中的新增版本中你可以随便填写版本名称,应用程序使用者是分布在网络各处的网民,你可以设置仅自己可见,登陆google账户活着匿名用户访问,这个完全看个人情况,自己写随便了,如果在公司有测试可以匿名这样很方便调试和测试,点击确定以后会让你登陆google账户授权给telegramBot :
点击允许之后部署即可,这个时候会生成一个连接,类似于这样的:这个连接是你写的google网络应用成连接,用来支配
var googleScriptUrl = “https://script.google.com/macros/s/AKfycbxt_Cvu7IuhfgOPUv073qIArI586nv4SmUbX0zT4a6Lw2MD5ZOs2l3Hvna/exec”;
telegramBot的,然后来看tgbot机器人的访问连接,注意一下bot后面是你的tgbot的token粘贴到这里即可。
var tgBotUrl = “https://api.telegram.org/bot617498207:AAE0MPbQhOaagEKgtkq4EameOqUKgQRBw_4/setWebhook?url=”;
在这里我们要把 googleScriptUrl 放在 https://api.telegram.org/bot617498207:AAE0MPbQhOaagEKgtkq4EameOqUKgQRBw_4/setWebhook?url= 这个连接url = 等于号的后面,就像这样
https://api.telegram.org/bot617498207:AAE0MPbQhOaagEKgtkq4EameOqUKgQRBw_4/setWebhook?url=https://script.google.com/macros/s/AKfycbxt_Cvu7IuhfgOPUv073qIArI586nv4SmUbX0zT4a6Lw2MD5ZOs2l3Hvna/exec
最后的访问连接是这样的,这里建议最好把googleScriptUrl连接Encoder一下,然后再粘贴进tg的连接里面,不会暴露你的信息和IP
然后返回tg里面随便输入字符,这样你输入什么tgbot机器人就会反馈给你什么。
最后是实现的代码:
function doPost(e){
var dataFromTelegram = {
"method": "post",
"payload": e.postData.contents
}
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
}
var dataParam = {
"method": "post",
"payload": payload
}
UrlFetchApp.fetch("https://api.telegram.org/bot61567498207:AAE0MPbQhOaagEKgtk3itoskdoKoPuYnHq4EameOqUKgQRBw_9/", data);
}
function preparePayload(body){
var payload;
if (body.message.text){
payload = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": body.message.text,
}
}
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": "Try other stuff"
}
}
return payload
}