站点图标 Linux-技术共享

利用 Google Script 搭建 Telegram Bot

介绍

使用 Telegram 提供的 Bot Webhook 将消息数据传递至托管在 Google Apps Script 的 Javascript 脚本处理,实现一些简单的功能。

Webhook: 向 Telegram 设置回调 url,机器人察觉到任何行为,Telegram 就会把行为 Json 数据 Post 到你设定的 url 。

Google Apps Script: https://script.google.com

Telegram Bot API:https://core.telegram.org/bots/api/

提前准备

创建机器人

打开 Telegram 向 @botfather 发送 /newbot 命令

依次发送机器人名称、机器人用户名(一旦确认无法修改)

? 机器人就创建成功了,你会得到机器人的 token (后面要用到)

新建脚本

打开 Google Apps Script 新建项目,复制以下代码到新建项目中

将第10行的 (token) 替换为你的机器人的 token

function doPost(e) {  //接受 Telegram 消息数据
  main(JSON.parse(e.postData.contents))
}

function send(payload) {  //发送函数
  data = {
    "method": "post",
    "payload": payload
  }
  UrlFetchApp.fetch("https://api.telegram.org/bot(token)/", data)
}

function main(body) {
  stext = body.message.text.split(" ")  //以空格分割消息文本,通常第一是命令文本
  stext[0] = stext[0].replace("@机器人的用户名", "") //处理群消息的命令

  if (stext[0] == "/start") {  //判断命令
    payload = {
      "method": "sendMessage", //使用的方法
      "chat_id": body.message.chat.id + "",  //回应对象的id,所有id记得转文本
      "text": "成功啦!!", //发送的文本
    }
    send(payload) //发送
  }
}

点击保存图标,点击 部署 中的 新建部署,点击 选择类型 的 ⚙️ 选择 Web 应用

有访问权限的人员 改为 任何人,点击 部署

首次部署需要授予访问权限,显示 此应用未经 Google 验证 时点击 高级,点击 转至未命名项目(不安全),点击 允许

部署成功后复制 Web 应用网址(下一步用到)

设置 Webhook

修改以下 url 的 (token) 与 (Web 应用网址) ,并复制至浏览器打开

https://api.telegram.org/bot(token)/setwebhook?url= (Web 应用网址)

显示如下内容就是设置成功啦,按道理机器人已经搭建好了!

{“ok”:true,“result”:true,“description”:“Webhook was set”}

测试一下

? 大功告成!!

向我们的机器人发送 /start 即可得到脚本中所设定的回应。

更多的功能就等各位自己利用 API 去开发实现啦!

退出移动版