Telegram图文详解-- 编程机器人(谷歌脚本服务)

昨天写的怎么创建机器人,如果想让机器人有一定的实用价值,还是要进行编程的。

今天所说的是使用谷歌的脚本服务,部署脚本服务通过webhook与Telegram的机器人连接完成,机器人的响应。

Telegram可以使用外部的任何服务,也包括一些智能机器人不错的接口。

废话不多说了,开始

1、首先要有一个谷歌账号,很有用的,搞一个吧。另外,就是要有JavaScript基础。

2、然后google搜索 Google Apps Script 进入在线脚本编程。

或者点击 https://www.google.com/script/start/

然后 “Start Scripting”-->"新建脚本"

Telegram图文详解-- 编程机器人(谷歌脚本服务)_第1张图片

Telegram图文详解-- 编程机器人(谷歌脚本服务)_第2张图片

3、添加如下代码

function doGet(e){
  return HtmlService.createHtmlOutput("你好,我是一个新的机器人服务请求!");
}
 
 
function doPost(e){
  var dataFromTelegram = {
    "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的Telegram机器人
  UrlFetchApp.fetch("https://api.telegram.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.telegram.org/bot627711111117:ADAxxxxxxxxxxxxxv8E/", data);

红色部分改成自己的Token。

4、发布  

点击 最新代码可以测试 ,返回 doGet结果。 复制RUL。

为了访问不报错,和一定的信息安全,可以DECODE一下。

在线工具: 

https://www.url-encode-decode.com/

 

Telegram图文详解-- 编程机器人(谷歌脚本服务)_第3张图片

Telegram图文详解-- 编程机器人(谷歌脚本服务)_第4张图片

选择账号允许!

5、将两个URL通过webhook拼起来

https://api.telegram.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、测试机器人

Telegram图文详解-- 编程机器人(谷歌脚本服务)_第5张图片

 

你可能感兴趣的:(telegram)