问题描述
我已经使用BotFather https://t.me/botfather
创建了Telegram机器人在RaspBerry服务器中,我有一些python代码来回答写给bot的消息。
它使用“ pyTelegramBotAPI”并基于此代码 https://www.flopy.es/crea-un-bot-de-telegram-para-tu-raspberry-ordenale-cosas-y-habla-con-ella-a-distancia/
基本上它会执行“ bot.polling()”
当我使用智能手机Telegram APP将消息写入bot时,它非常完美。
问题是,当我从另一台计算机向机器人写入消息时, 使用“ bash” +“ curl” +“ POST”
服务器没有收到bash消息,因此它没有应答。
有人可以提供我所缺少的任何概念的信息吗?
PD。-bash + curl代码就是这个
#!/bin/bash
TOKEN="1436067683:ABGcHbGWS3ek1UdKvyRWC7Xtuv1DuyvT6A4"
ID="304688070"
MENSAJE="La RaspBerry te saluda."
URL="https://api.telegram.org/bot${TOKEN}/sendMessage"
curl -s -X POST ${URL} -d chat_id=${ID} -d text="${MENSAJE}"
PD#2 .-现在我使用“ json”,并且达到了一种有趣的情况:
curl -v -X POST -H 'Content-Type: application/json' -d '{"chat_id":"${ID}","text":"${MENSAJE}"}' ${URL_sndmsg}
...产生...
{"ok":false,"error_code":400,"description":"Bad Request: chat not found"}
...但是我既没有更改ID也没有更改令牌...并且旧代码仍然可以找到聊天记录...
奇怪
解决方法
bot API的sendMessage端点是POST端点,根据the documentation,您需要使用JSON数据与之通信。
您在问题中提出的要求如下:
#!/bin/bash
TOKEN="1436067683:ABGcHbGWS3ek1UdKvyRWC7Xtuv1DuyvT6A4"
ID="304688070"
MENSAJE="La Raspberry te saluda."
URL="https://api.telegram.org/bot${TOKEN}/sendMessage"
curl -s -X POST -H 'Content-Type: application/json' -d '{"chat_id":"${ID}","text":"${MENSAJE}"}' ${URL}
我建议您在进行测试时不要使用-s
选项,那样您可以看到输出并且可以弄清楚。