站点图标 Linux-技术共享

使用Google Script Apps编写Telegram Bot 机器人简单对话

这篇文章主要写使用google脚本的来做一个简单tgBot对话的,你说什么它会重复你说的。Telegram 官方API:https://core.telegram.org/bots/api,在编写之前需要去google搜索 google Script console --- 点击 google Apps Script ---start Scripting 。 20190117224735913

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
        }

 

退出移动版