相关链接

使用步骤

1. 与 BotFather 对话

BotFather 对话并根据指引创建机器人,可以得到机器人的 Token

2. 将机器人加入群聊并获取 chat_id

  1. 进入机器人信息页,点击 … -> Create Group -> Next 即可创建与机器人的聊天框
  2. 发送一条任意内容的消息
  3. 访问 https://api.telegram.org/bot/getUpdates 可以找到群聊 chat_id

3. 发送消息

Telegram 的参数传递较为自由,于是考虑使用 POST 方法,将常量放入 query string 中,body 仅传递需要推送的消息

1
2
3
4
5
6
7
token="<token>"
chat_id="<chat_id>"
message="Hello World."

curl -X POST "https://api.telegram.org/bot$token/sendMessage?chat_id=$chat_id" \
-H "Content-Type: application/json" \
-d "{\"text\":\"$message\"}"

用于 GitHub Actions 中消息通知

  1. 新建 Name 为 TG_BOT_URL,Value 为 https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id> 的 Secret
  2. 相关 Workflow 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
name: master bot

on:
push:
branches:
- master

jobs:
build:
name: Build on node ${{ matrix.node_version }} and ${{ matrix.os }}
runs-on: ubuntu-latest
strategy:
matrix:
os: [ubuntu-latest]
node_version: [20.x]

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Bot
run: |
message=$(git log -1)
curl -X POST "${{secrets.TG_BOT_URL}}" -H 'Content-Type: application/json' -d "{\"text\":\"$message\"}"