【问题标题】:How to get Chat ID & Text in Telegram?如何在 Telegram 中获取聊天 ID 和文本?
【发布时间】:2017-01-21 13:46:45
【问题描述】:

当我在 PHP 中使用 file_get_contents 函数来获取我的 Telegram Bot 的更新时,我知道如何获取第一个聊天 ID 或文本但是此页面不仅适用于一个用户,而且每个键入文本的用户都会来到此页面.此外,每个用户都有其聊天 ID 和文本。那么如何检测最新的文本和聊天 ID 以对此做出反应?例如:当我使用此代码时:

$Updates['result'][0]['message']['chat']['id']

它获取在我的机器人中输入的第一个用户聊天 ID。当我对他的文字做出反应时,我会将我的消息发送给最新的用户使用我的机器人...... 我该怎么做?

【问题讨论】:

    标签: php telegram telegram-bot php-telegram-bot


    【解决方案1】:

    我想你使用 webhook。

    每个会话都以用户发送给机器人的某种数据(短信、照片等)开始,并以这些数据的处理结束(你的机器人可以发送或不回复用户)

    请记住:在每个会话中,您的机器人脚本只有最新的消息及其发件人数据,不多不少。

    要检索用户发送的短信,请使用:$update->message->text 或类似名称。 对于检索发件人chat_id 使用:$update->message->chat->id

    更新

    如果您不使用 webhook:

    过程类似,只是你要求电报一一向你发送消息。每次您的脚本处理第一条未读消息时,脚本就会结束。如果您进行循环,您应该将数据保存在数据库中并将chat_id 和其他消息数据刷新到最新的 READ 消息以不丢失对应关系。否则您的消息和它的发件人不会有关系。

    【讨论】:

    • 谢谢,如果我不使用 WebHooks 会怎样?
    • @AliBahaari 更新,
    • 对不起,但这有点令人困惑。你能给我一个不使用 webhooks 的例子吗?谢谢...
    • @AliBahaari Bb 顺便,让我分享一下我自己的经验:简单地潜入webhooks。但是在轮询系统(与 webhook 相对)中,有人发送消息 #1。然后这个用户或其他人发送一条消息,将其命名为消息 #2。如此重复,M(essage)#3, M#4;在未知的时间内,您的脚本从电报中检索消息。 Telegram 在第一步发送#1 消息。然后您的脚本再次请求。现在电报发送#2消息,然后发送M#3等等。它们类似于队列。消息先入先出。(FIFO)
    猜你喜欢
    • 2020-04-14
    • 2019-10-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    相关资源
    最近更新 更多