电报机器人 "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
如果你想使用机器人消息到频道,你可以参考这里的步骤
步骤:
- 创建 Telegram public 频道
- 通过 BotFather
创建 Telegram BOT(例如 x_bot
)
- 将
x_bot
设为您频道的管理员
chat_id 是 @x_bot
,它是 https://t.me/x_bot
的一部分,没有添加您的频道名称。
我在 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
如果你想使用机器人消息到频道,你可以参考这里的步骤
步骤:
- 创建 Telegram public 频道
- 通过 BotFather 创建 Telegram BOT(例如
- 将
x_bot
设为您频道的管理员
x_bot
)
chat_id 是 @x_bot
,它是 https://t.me/x_bot
的一部分,没有添加您的频道名称。