在我们的小型初创公司中,我们使用GitLab进行开发,使用Telegram进行开发人员和PO之间的内部沟通。由于PO希望立即看到进度,因此我们设置了GitLab Pipeline,以便在每次提交后将预览版部署在Web服务器上。现在我们想扩展管道。这样在部署后通过Telegram组发送通知。
所以问题是,这可能吗?如果可能,怎么可能?
编辑:因为我已经实现了,这不是一个真正的问题。我想把答案贴在这里,这样其他人也可以使用它。
发送通知的一种简单方法(特别是当您使用多个服务或聊天时)是使用apprise。
要发送到一个电报通道:
apprise -vv --body="Notify telegram chat" \
tgram://bottoken/ChatID1 \
这使得您可以轻松地从管道中同时通知多个服务,而无需针对每个服务的API编写代码(apprise为您处理)。
image: python:3.9-slim # or :3.9-alpine if you prefer a smaller image
before_script:
- pip install apprise # consider caching PIP_CACHE_DIR for performance
script: |
# Set a notification to multiple telegram chats, a yahoo email account,
# Slack, and a Kodi Server with a bit of added verbosity:
apprise -vv --body="Notify more than one service" \
tgram://bottoken/ChatID1/ChatID2/ChatIDN \
mailto://user:password@yahoo.com \
slack://token_a/token_b/token_c \
kodi://example.com
因此,我们将一步一步地进行:
Telegram本身对此有足够好的指导:
https://core.telegram.org/bots#6-僵尸父亲
指令没有明确说明任何内容,但要生成它,您必须进入与僵尸父亲的聊天。最后,您会得到一个机器人令牌,类似于110201543: AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsee
切换到Telegram组,并将创建的机器人添加为成员(按名称查找机器人)。
在浏览器中获取机器人的更新状态:<代码>https://api.telegram.org/bot
在响应中找到聊天id:。。。“chat”:{“id”:
有关更多详细信息,请参阅:Telegram Bot-如何获取群聊id?
使用curl命令发送消息。例如,gitlab管道中的现有阶段可以为此目的进行扩展:
upload:
stage: deploy
image: alpine:latest
script:
- 'apk --no-cache add curl'
- 'curl -X POST -H "Content-Type: application/json" -d "{\"chat_id\": \"<YourGroupID>\", \"text\": \"CI: new version was uploaded, see: https://preview.startup.com\"}" https://api.telegram.org/bot<YourBOTToken>/sendMessage '
only:
- main
请记住调整
YourBOTToken
和YourGroupID
,以及消息的文本。
*)我们在这里使用alpine docker图像,因此必须安装curl——“apk——无缓存添加curl”。对于其他图像,这可能必须以不同的方式完成。
如何使用注册为频道管理员的机器人访问电报频道消息? 我试图从电报频道获取所有信息,并在ASP.NET网页上显示出来(c#) 当新消息直接发送到机器人时,我能够获得更新: 但它不适用于该频道。
场景如下,我希望每分钟在电报通道上发送消息或通知(无需用户发送命令)。 我可以在每次输入URL并发送消息时发送消息,但我希望每分钟自动发送(不输入URL)。我不知道怎么做,提前谢谢。 注意:此聊天id必须是一个人的聊天id,而不是另一个机器人聊天id!!!**$params=['聊天室id'= 我必须输入要发送的邮件的URL。。。https://bot.unpixelmas.com/bot.php
我使用下面的代码片段通过邮件发送testng的emailable-report.html。 公共类SampleSendMail{
创建电报机器人并获得机器人令牌后,我想向机器人应用编程接口发送请求。 这个链接说我们必须像这样发送HTTP请求:
我已经设置了一个电报网络钩子使用node.js/express: 当我获取时,我可以收到我的机器人控制台: 现在我想从机器人程序接收数据,这样当用户访问时https://telegram.me/mybot?start=xyz并按bot,bot应该在的帖子中收到 以下是我收到邮件的路线: 但当用户访问时,我发现机器人中什么也没有发生https://telegram.me/mybot?start=xy
嗨,我正在尝试建立一个网站登录系统,用户可以使用电报登录。我希望实现此工作流: < li >用户选择通过电报登录/注册。 < li >用户输入他们的用户名(@ExampleJoe)。 < li >通过我的电报机器人(@ExampleBot)向他们发送6位验证码。 < li >用户将收到的6位数字代码输入到我的网站,并被允许进入。 我在步骤 2-3 中遇到了问题,我的机器人可以仅使用其用户名向他们发