getupdates
方法(长轮询)从聊天中获取消息。
getUpdates 方法仅显示用户发布的消息(客户端)。当我直接使用
sendmessage
方法(服务器端)发布消息时,这些消息确实会出现在聊天中,但不会出现在 getUpdates 日志中。
此页面https://github.com/LibreLabUCM/teleg-api-bot/wiki/Getting-started-with-the-Telegram-Bot-API#getupdates 声明仅当“用户直接或以群组形式向您的机器人发送消息”时才会记录。还有其他一些方式,但是sendMessage方式没有提到。
setwebhook
方法(推送)的内容,但不确定这是否能解决我的问题。
这可能吗?
根据机器人常见问题解答,无论模式如何,机器人都无法看到来自其他机器人的消息。
getUpdates方法仅显示来自用户的更新,而不显示来自机器人本身的更新。这意味着当您使用 getUpdates 方法获取新消息时,Telegram API 将仅列出用户发送的消息,而不列出机器人通过任何方法发送的消息(例如 sendMessage
sendPhoto
) ...).
要获取旧消息,您可以将每条消息(甚至是机器人使用 sendMessage 方法发送的消息)的整个更新(或仅需要的部分更新)存储在文件或数据库中,并且当您需要旧消息时消息,您可以简单地从数据库或文件中获取它。
一个执行 sendMessage
getUpdates
方法。
@Giolacca9回答激励我尝试这个解决方法并且它有效,“不是来自机器人本身”:)