• 欢迎订阅我的Youtube频道
  • 欢迎加入我的电报群

Telegram AI 智能聊天机器人 | 上知天文, 下知地理 | 数学,天气,笑话,游戏,翻译通通都会 | 抄个100多行代码就能用 | 小白也能搞定

Youtube fennng 1年前 (2018-11-09) 3374次浏览 1个评论

通过 100 多行代码将 Telegram 机器人接到国产的 AI 大脑, 功能强大, 懂数学, 懂成语,懂天气, 会讲笑话,还能玩游戏。

机器人的代码请翻到后面
代码已经写好,只要小小的改动就可以使用。

-~-~~-~~~-~~-~-

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用 KODI 看电影等等. 点击进入我的频道: goo.gl/5tyxcf

🔷 订阅我的频道: goo.gl/KuF3bY
🔷 telegram 电报群: t.me/fengsharegroup
🔷 我的博客: http://www.dengnz.com/blog
🔷 Facebook: http://www.facebook.com/fengnz
🔷 Twitter: https://twitter.com/fennng

觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧
微信赞赏码: goo.gl/uKoE8w
-~-~~-~~~-~~-~-

代码.gs

function doPost(e) {
  var body = JSON.parse(e.postData.contents);
  if (!checkIsMyMessage(body)){
    return;
  }

  if (body.message && body.message.chat){
    body.message.chat.id = body.message.chat.id + '';
  }

  var payload = tulinBotPayload(body);
  var payloads;

  if (Array.isArray(payload)){
    payloads = payload;
  } else {
    payloads = [payload]
  }

  for (var i = 0; i < payloads.length; i++){
    payload = payloads[i];
    if (payload){
      var res = PostTelegram(payload);
    }
  }

}
function tulinBotPayload(body) {
  var payload;
  var chatId = body.message.chat.id;
  payload = {
    "method": "sendMessage",
    "chat_id": chatId,
    "text": "",
    "disable_web_page_preview": true,
    "reply_to_message_id": body.message.message_id,
  };

  var tulinReq = {
    "reqType": 0,
      "perception": {
          "inputText": {
              // tulinjiqirenbot 改成你自己机器人的名字
              "text": body.message.text.replace("@tulinjiqirenBot", "")
          }
         
      },
      "userInfo": {
        // 改成你自己的图灵机器人的 apikey 和 userId
          "apiKey": "4e8395e7721046e38e9c610de725edd7",
          "userId": "339657"
      }
  };


  var data = {
    'contentType': 'application/json',
    "method": "post",
    "payload": JSON.stringify(tulinReq)
  };

  var response = UrlFetchApp.fetch("http://openapi.tuling123.com/openapi/api/v2", data);
  var res = JSON.parse(response);

  if (res.results && res.results[0].values && res.results[0].values.text) {
    payload.text = res.results[0].values.text;
  }
  return payload;
}
function isPrivate(body) {
  var share =  getShareObject(body);
  var chat = share.chat;
  if (chat.type === "private") {
    return true;
  }
  return false;
}
function PostTelegram(payload) {
  var data = {
    'contentType': 'application/json',
    "method": "post",
    "payload": JSON.stringify(payload)
  };

  // 改成你自己机器人的 API token
  var response = UrlFetchApp.fetch("https://api.telegram.org/bot750371992:AAGTJC08Gg3g9I-gVm6BkAb30wsMVyQMbUI/", data);
  var res = JSON.parse(response);
  return res;
}
function checkIsMyMessage(body){
  var text = body.message.text;

  if (isPrivate(body)){
    return true;
  }

  if (body.message.reply_to_message) {
//这里的ID要改成你自己机器人的ID, 之前视频里忘讲了
    if (body.message.reply_to_message.from.id == 750371992) {
      return true;
    }
  }

// 如果找不到机器人的 ID, 可以用以下这段代码代替, 换成你自己机器人的名字
 // if (body.message.reply_to_message) {
  //  if (body.message.reply_to_message.from.username == "tulinjiqirenBot") {
  //    return true;
  //  }
 // }

  if (text) {
    var paras = text.split(" ");
    if (paras[0] && paras[0].indexOf("@") >= 0){
      // tulinjiqirenbot 改成你自己机器人的名字, 全部小写
      if  (paras[0].toLowerCase().indexOf("tulinjiqirenbot") >= 0){
        return true;
      }
      return false;
    }
  }
  return false;
}

function getShareObject(body) {
  var payload;
  var from;
  var chat;
  var messageId;
  var callback_query_id;

  // use editMessage method instead if it's a callback 
  if (body.callback_query) {
    chat = body.callback_query.message.chat;
    chat.id = chat.id + "";
    messageId = body.callback_query.message.message_id;
    from = body.callback_query.from;
    callback_query_id = body.callback_query.id;
    payload = {
      "method": "editMessageText",
      "chat_id": chat.id,
      "message_id": messageId,
      "text": "",
      "parse_mode": "markdown",
      "disable_web_page_preview": false,
    };
  } else {
    from = body.message.from;
    chat = body.message.chat;
    chat.id = chat.id + "";
    messageId = body.message.message_id;
    payload = {
      "method": "sendMessage",
      "chat_id": chat.id,
      "text": "",
      "parse_mode": "markdown",
      "disable_web_page_preview": true,
      "reply_to_message_id": messageId,
    };

  }

  var share = {};
  share.payload = payload;
  share.from = from;
  share.chat = chat;
  share.messageId = messageId;
  share.callback_query_id = callback_query_id;

  return share;
}


峰享技术 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Telegram AI 智能聊天机器人 | 上知天文, 下知地理 | 数学,天气,笑话,游戏,翻译通通都会 | 抄个 100 多行代码就能用 | 小白也能搞定
喜欢 (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 那个机器人ID 是图灵的还是telegram的呢?
    Miao2019-06-18 22:23 Reply