我在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
答案 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