python bot服务器未收到bash消息-缺少概念

问题描述

我已经使用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选项,那样您可以看到输出并且可以弄清楚。