电报机器人 "chat not found"

Telegram Bot "chat not found"

我在 Python 中有以下代码,用于从机器人向我自己发送消息。

import requests

token = '123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI'
method = 'sendMessage'
myuserid = 1949275XX
response = requests.post(
    url='https://api.telegram.org/bot{0}/{1}'.format(token, method),
    data={'chat_id': myuserid, 'text': 'hello friend'}
).json()
print(response)

但是这个returns{'description': 'Bad Request: chat not found', 'error_code': 400, 'ok': False}

我做错了什么?我通过将 /getid 发送到 @myidbot 获得了 myuserid,我从 @BotFather

获得了我的令牌

正如@maak 指出的那样,您需要先向机器人发送消息,然后机器人才能向您发送消息。

有一种方法可以将通知消息发送到电报。这有点棘手,但教程很棒!

http://bernaerts.dyndns.org/linux/75-debian/351-debian-send-telegram-notification

我刚刚将我的 apache 状态的消息发送到一个专用通道。 也适用于 public 频道,但这不是我想要的。当您调用脚本 (bash) 时,您可以使用任何脚本语言准备参数。

希望对您有所帮助。

如果您尝试向 群组 发送消息,您必须在聊天 ID 前添加“-”。 例如:

TELEGRAM_REG_CHAT_ID="1949275XX"

应该是

TELEGRAM_REG_CHAT_ID="-1949275XX"

我在 chat_id 的值之前使用了前缀 @,正如到处所建议的那样。我将其删除并开始工作。 注意:如果您的聊天 ID 是 12345678,那么您需要在它前面加上 -100,这样它就是 -10012345678。 邮递员呼叫示例:

/sendMessage?chat_id=-10012345678&text=Let's get together

对我来说,它只适用于频道 ID 前的 @ 前缀

如果您使用用户名,则不需要任何前缀。这意味着以下是不正确的:

https://t.me/vahid_esmaily_ie
t.me/vahid_esmaily_ie

这是正确的情况:

vahid_esmaily_ie

如果你想使用机器人消息到频道,你可以参考这里的步骤

步骤:

  1. 创建 Telegram public 频道
  2. 通过 BotFather
  3. 创建 Telegram BOT(例如 x_bot
  4. x_bot设为您频道的管理员

chat_id 是 @x_bot,它是 https://t.me/x_bot 的一部分,没有添加您的频道名称。