Skip to content

H1d3r/TgMessage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deploy with Vercel

使用 EdgeOne Pages 部署

技术赞助

本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助:EdgeOne 提供长期有效的免费套餐,包含不限量的流量和请求,覆盖中国大陆节点,且无任何超额收费,感兴趣的朋友可以点击下面的链接领取

亚洲最佳CDN、边缘和安全解决方案 - Tencent EdgeOne

Tencent EdgeOne

第一步:创建 Telegram 机器人 (公共教程)

在部署之前,您首先需要一个 Telegram Bot。

  1. 关注 BotFather: 在 Telegram 中搜索并关注官方的 BotFather
  2. 创建机器人:
    • 向 BotFather 发送 /newbot 命令。
    • 根据提示,依次输入机器人的显示名称(例如 我的消息助手)和用户名(必须以 bot 结尾,例如 my_message_assistant_bot)。 oEENc.png
  3. 获取 Token: 创建成功后,BotFather 会发送一条包含 API Token 的消息。请务必保存好这个 Token,它在后续部署中是必需的。 oEGEr.png
  4. 设置命令: 为了方便获取 chat_id,需要为机器人设置一个命令。
    • 向 BotFather 发送 /mybots,然后选择你刚刚创建的机器人。
    • 点击 Edit Bot -> Edit Commands
    • 输入 token - 获取个人 Token 并发送。 oEQIM.png

第二步:选择平台进行部署

您可以选择 Vercel 或 腾讯云 EdgeOne 进行部署,两者择一即可。

选项 A:通过 Vercel 部署

Vercel 提供免费、快速的 Serverless 函数托管服务。

  1. 一键部署: 点击项目顶部的 Deploy with Vercel 按钮。
  2. 设置环境变量: 在 Vercel 的项目创建页面,你需要配置以下环境变量:
    • token: 【必填】 填入上一步获取的机器人 API Token。
    • sign_key: 【建议】 用于加密 chat_id 的密钥,不设置默认为 abc。建议设置为一个复杂的随机字符串。
    • key: 【建议】 设置 Webhook 时的管理密钥,防止他人调用。请设置为一个复杂的随机字符串。
    • url: 【可选】 你的 Webhook 回调地址。如果不设置,后续需要手动指定。Webhook 最终地址为 https://<你的Vercel域名>/api/webhookoSJRB.png
  3. 获取个人 Token:
    • 部署完成后,在浏览器中访问 https://<你的Vercel域名>/api/setWebhook?key=<你设置的key> 来设置回调。
    • 然后与你的机器人对话,发送 /token 命令,机器人会返回一长串加密的个人 Token。
  4. 发送消息:
    • 现在你可以通过请求 https://<你的Vercel域名>/api/index?token=<你的个人Token>&message=你好 来给自己发送消息。

选项 B:通过 EdgeOne Page Functions 部署

EdgeOne 是腾讯云推出的边缘一体化安全与加速平台,其 Page Functions 功能同样可以托管本项目。 edge_image

  1. 一键部署 (推荐):
    • 点击项目顶部的 使用 EdgeOne Pages 部署 按钮。
    • 授权后,在项目创建页面,EdgeOne 会自动为你填充大部分配置。
    • 环境变量 部分,填入 tokensign_key
    • 重要: 部署启动后,请立即进入项目 "设置" -> "环境变量" 页面,手动添加第三个环境变量 key
    • 环境变量说明:
      • token: 【必填】 你的 Telegram Bot Token。
      • sign_key: 【必填】 加密 chat_id 用的密钥。
      • key: 【必填】 设置 Webhook 用的管理密钥。
  2. 手动部署:
    • Fork 本项目到你的 GitHub 账户。
    • 在 EdgeOne 控制台新建 Pages 项目,关联你 Fork 的仓库。
    • 输出目录 填写 edge_deploy
    • 手动添加上述三个环境变量。
  3. 获取个人 Token:
    • 部署成功后,在浏览器中访问 https://<你的Pages域名>/setWebhook?key=<你设置的key> 设置回调。
    • 与你的机器人对话,发送 /token 命令,获取个人 Token。
  4. 发送消息:
    • 通过访问 https://<你的Pages域名>/sendMessage?token=<你的个人Token>&message=你好 发送消息。
    • API 详情可参考 edge_deploy/edge.html

Vercel 版本

TG 消息推送机器人,基于 vercel 函数 和 Edgeone 边缘函数 搭建的TG消息推送机器人,无需服务器。

搭建教程

Deploy to Vercel

Deploy to Vercel

建立 TG 机器人

1.首先关注 BotFather

  1. 创建机器人,关注 BotFather 之后,发送 /newboot 开始创建 Bot 第一次输入机器人名称,第二次输入机器人 username 需要以 bot 结尾 oEENc.png

3.获取机器人 token

创建成功之后会发送一条消息给你,里面就包含了 token

oEGEr.png

设置机器人 Command 设置获取 token 命令 首先给 BotFather 发送 /mybots,然后点击你刚才创建的机器人,再点击 Edit Bot, 继续点击 Edit Commands。 然后输入

token - 获取token

这样就设置好了一个 commands

oEQIM.png oE0FG.png oEcR1.png oEd9I.png

部署到 Vercel

点击首页的 Deploy 跳到 vercel oSgul.png

输入项目名,然后确认

oSpFg.png

确认之后会直接部署到 vercel

设置环境变量

vercel 部署好了之后,然后设置环境变量

在控制台点击你创建好的项目,然后点击设置,添加环境变量

设置vercel 环境变量

需要设置4个环境变量,1个是必填的

token: bot 机器人的token
sign_key: 加密 chat_id 需要用到,不设置默认为 abc
url: webhook 回调地址, 不设置的话请求 setWebhook 时需要手动加参数, webhook url 地址为:https://你的域名/webhook
key: 设置 webhook 的请求参数

oSJRB.png

上面的环境变量设置好了之后,可能不会立马生效,你可以重新构建一下函数

oSP9s.png

设置回调

设置 webhook ,可以直接通过浏览器请求来设置

webhook地址为:https://你的域名/webhook

浏览器窗口打开:https://你的域名/setwebhook?key=环境变量设置的KEY&url=你的webhook地址

code 返回 200 就是设置成功了~


第三步:配置 GitHub Webhook(可选)

本项目现在支持接收 GitHub Webhook 事件,并将通知发送到 Telegram Bot。以下是如何设置 GitHub Webhook:

1. 设置环境变量

在部署平台(Vercel 或 EdgeOne)中添加以下环境变量:

  • github_webhook_secret: 【建议】 GitHub Webhook 密钥,用于验证请求来源。设置为一个复杂的随机字符串。
  • default_chat_id: 【可选】 默认的 Telegram Chat ID,如果不设置,则需要在请求中提供 token 参数。

2. 配置 GitHub Webhook

  1. 在你的 GitHub 仓库中,进入 Settings -> Webhooks -> Add webhook
  2. Payload URL: 填写 https://<你的域名>/api/githubWebhook(Vercel)或 https://<你的域名>/githubWebhook(EdgeOne)。
  3. Content type: 选择 application/json
  4. Secret: 填入你在环境变量中设置的 github_webhook_secret 值。
  5. Which events would you like to trigger this webhook?: 选择你想要的事件,例如:
    • Pull requests: 当有新的、更新或关闭的 PR 时触发
    • Pushes: 当有代码推送到仓库时触发
    • Issues: 当有新的、更新或关闭的 Issue 时触发
    • Releases: 当有新的 Release 发布时触发
  6. 点击 Add webhook 保存设置。

3. 测试 Webhook

在 GitHub Webhook 设置页面,点击最近添加的 webhook,然后点击 "Redeliver" 按钮来测试发送一个 ping 事件。

4. 支持的事件类型

目前支持以下 GitHub 事件类型:

  • pull_request: PR 创建、更新、关闭、重新打开等
  • push: 代码推送到仓库
  • issues: Issue 创建、更新、关闭、重新打开等
  • release: 新版本发布

5. 自定义 Chat ID

如果你不想设置 default_chat_id 环境变量,也可以在 Webhook URL 中添加 token 参数:

https://<你的域名>/api/githubWebhook?token=<你的个人Token>

这样,GitHub 事件通知将发送到与该 token 关联的 Telegram 聊天。


故障排除

/token 命令不返回内容

如果您发送 /token 命令到机器人但没有收到回复,请按照以下步骤进行排查:

  1. 检查 Webhook 设置

    • 访问 https://<你的域名>/api/debug 查看当前 webhook 设置和环境变量状态
    • 确保 webhook URL 正确指向 https://<你的域名>/api/webhook
  2. 重新设置 Webhook

    • 访问 https://<你的域名>/api/setWebhook?key=<你设置的key>&url=https://<你的域名>/api/webhook
    • 确保返回 { "code": 200, "message": "Webhook set to https://<你的域名>/api/webhook" }
  3. 检查环境变量

    • 确保已正确设置 token(Bot Token)
    • 确保已正确设置 sign_key(加密密钥)
    • 确保已正确设置 key(管理密钥)
  4. 检查 Bot 权限

    • 确保机器人有发送消息的权限
    • 确保你没有屏蔽机器人
  5. 查看日志

    • 在 Vercel 或 EdgeOne 控制台查看函数日志,查找可能的错误信息

手动测试 Webhook

您可以使用 curl 命令手动测试 webhook:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "message": {
      "text": "/token",
      "chat": {
        "id": 你的chat_id
      }
    }
  }' \
  https://<你的域名>/api/webhook

获取 Chat ID

如果您不知道自己的 Chat ID,可以:

  1. 向机器人发送任意消息
  2. 访问 https://api.telegram.org/bot<你的BotToken>/getUpdates
  3. 在返回结果中找到 message.chat.id 字段

About

TG 消息推送机器人, 支持 EdgeOne,Vercel 部署

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 65.9%
  • JavaScript 27.9%
  • PHP 6.2%