[07] telegram 回声各种讯息种类

请跟查看官方提供的文件

https://core.telegram.org/bots/api#available-methods

查询 sendMessage 然後看下面一系列的 send 来制作回声

开始实作回声所有类型的讯息

但有一种类型比较特别,他是会分多个档案传进来的这边先不处理

先修改 main 档案让她进行判断

请主要看 parseDataToTelegram 这个函式的判断

main.js

const { sendBotMessage } = require("./telegramItem");

function receiveTelegram(data) {
  data = parseDataToTelegram(data);
  sendBotMessage(data);
}

/**
 * @description 用来分析与转换对应的讯息类型
 *
 * @param {*} estringa
 * @return {*}
 */
function parseDataToTelegram(estringa) {
  var payload = {};
  if (estringa.message.text) {
    payload = {
      method: "sendMessage",
      text: estringa.message.text,
    };
  } else if (estringa.message.sticker) {
    payload = {
      method: "sendSticker",
      sticker: estringa.message.sticker.file_id,
    };
  } else if (estringa.message.photo) {
    array = estringa.message.photo;
    text = array[1];
    payload = {
      method: "sendPhoto",
      photo: text.file_id,
      caption: estringa.message.caption ? estringa.message.caption : "",
    };
  } else if (estringa.message.video) {
    vidoe = estringa.message.video;
    payload = {
      method: "sendVideo",
      video: vidoe.file_id,
      caption: estringa.message.caption ? estringa.message.caption : "",
    };
  } else if (estringa.message.animation) {
    animation = estringa.message.animation;
    payload = {
      method: "sendAnimation",
      animation: animation.file_id,
      caption: estringa.message.caption ? estringa.message.caption : "",
    };
  }
  payload.chat_id = estringa.message.chat.id;
  return payload;
}

module.exports = {
  receiveTelegram,
};

在更改telegramItem.js,现在只负责送出

const axios = require("axios");
/**
 * @description 发送讯息,请换成自己的机器人 token
 *
 * @param {object} data telegram bot api format
 */
function sendBotMessage(data) {
  const url =
    "https://api.telegram.org/bot" +
    "1978609847:AAHg8e-V_bNx78PCZok8uYzN8BYwlRScfgA" +
    "/";
  // 如果他是 text 讯息的话就这样回声
  axios({
    url,
    method: "post",
    data,
  })
    .then((data) => {
      console.log("Send Telegram:");
      console.log(data.data);
    })
    .catch((e) => {
      console.log("Send Telegram: Error:");
      console.log(e);
    });
}

module.exports = {
  sendBotMessage,
};

基本上要上传档案给机器人传是很麻烦的

官方建议是先是把档案传给这个机器人拿到对应 file_id 後在回传

有问题可以先参考文件关於 method 对应的文件

day07


<<:  Day10: Detection on AWS

>>:  冒险村07 - Update gems & js

Day 17 Compose Gestures partI

今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...

[Python 爬虫这样学,一定是大拇指拉!] DAY17 - 爬虫事前准备

爬虫事前准备 本篇章之後将进入爬虫环节,但开始撰写程序前,我们先来安装会使用的套件吧! 本系列文将使...

Day10 - 套用 Tag Helper - 复杂型别 object

这篇开始使用 Tag Helper 来 Render 出需要的 Html 控制项 name,方便在 ...

Day17:17 - 结帐服务(1) - 後端 - 结帐、订单新增API

Здравейте,我是Charlie! 在Day16当中,我们完成了前端的购物车新增跟删除,而今天...

Windows Server 2012/2016从Evaluation评估版升级到正式版

1. 管理员模式运行cmd,输入命令:DISM /online /Get-CurrentEditio...