电报Bot"未找到聊天"

时间:2016-12-15 23:10:50

标签: python python-requests telegram telegram-bot

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

import requests

token = '320835125:AAFUUC-fdo_EFzsCjvmxu8HBk7qVzZXXXXX'
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)

但这会返回{'description': 'Bad Request: chat not found', 'error_code': 400, 'ok': False}

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

获得了我的令牌

6 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

如果您尝试将消息发送到,则必须在聊天ID前面添加“-”。 例如:

@data = (Data.where(value: params[:value]]).order(created_at: desc) + Result.where(value: params[:value]]).order(created_at: desc)).sort_by(&:updated_at)

应该是

TELEGRAM_REG_CHAT_ID="1949275XX"

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

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

我刚刚向私人频道发送了一条关于我的阿帕奇州的消息。 也适用于公共频道,但这不是我想要的。在调用脚本(bash)时,您可以使用任何脚本语言准备参数。

希望有所帮助。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

这是正确的情况:

vahid_esmaily_ie