目录

telegram-bot推送通知(tg-bot入门)

更新于 2021-01-25

考虑到平时有使用一些自动化程序来执行任务,一直缺乏一种时刻给自己通知自动化程序运行情况的方法,最近了解到Telegram Bot 的 API 十分强大,基本可以满足推送通知的大部分要求。

这篇文章是tg bot的入门,但是并没有使用库函数,而是说明了shell脚本或在命令行中发送通知的方法。

BOT前期配置

1. 前期准备

  • 科学的上网环境
  • 安装好telegram客户端

2. Bot token的获取

在 tg 中打开与TelegramBotFather的对话,输入/start, 随后会收到一系列指令及其说明,你可以仔细看一下。

我们输入 /newbot 的指令,输入bot的名字,如 xjt_private , 随后输入用户名(需要以bot结尾),如xjt_private_bot

随后我们将收到一段信息,其中包括了如下部分:

Use this token to access the HTTP API:
1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
这段token是你的bot的绝对的访问权限,如果泄露可能有被盗用的风险,并且,如果被滥用该bot将被封禁。

3. 获取相对于bot(或其他人)来说,你的chat_id

  1. 用客户端向你的 bot 随便说一句话【在搜索栏搜索你刚才设置的用户名即可找到你的BOT,或这你可以在 bot father 给你发送token的那段话中找到你的bot的链接】

  2. 用你的 token 替换掉下面的toen,得到一个链接

    https://api.telegram.org/bot1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/getUpdates
    
  3. 在浏览器中访问它,或者使用

    wget https://api.telegram.org/bot1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/getUpdates
    
  4. 而后,我们将得到一段json字符,找到id字段后边的那一串数字,如727830470,注意不是update_id

4. 第一条消息

curl --data chat_id="727830470" --data "text=Hello, World." "https://api.telegram.org/bot1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sendMessage"

此时,我们就应该收到 bot 发送来的消息了。

5. 封装脚本

创建如下的 bot.sh,只需 bash bot.sh 即可自动发送消息。

#!/bin/bash

TOKEN=<TOKEN>
CHAT_ID=<CHAT_ID>
MESSAGE="Hello World"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"

curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"

也可以发送文件

#!/bin/bash

TOKEN=<TOKEN>
CHAT_ID=<CHAT_ID>
CAP="Run Script"
FILE="log.txt"
URL_FILE="https://api.telegram.org/bot${TOKEN}/sendDocument"

curl -s -X POST $URL_FILE -F chat_id=$CHAT_ID -F caption="$CAP" \
                          -F document=@"$FILE" > /dev/null

Telegram 自动通知脚本运行结果 - Fing’s Blog (imfing.com)

微软 Microsoft Bot FrameWork Microsoft Bot Framework

Server/RunScript Telegram Alert Bot | by SemiQuant | Medium

免费版气象天气服务(cityid)-墨迹天气【最新版】_空气质量_天气预报_API-云市场-阿里云 (aliyun.com)