Telegram Bot:在getUpdates方法中使用偏移量


Telegram Bot: using offset in getUpdates method

我想构建一个订阅提要的电报机器人,以便订阅者可以获得站点更新。但我需要用户开始聊天与我的机器人。我将使用深度链接根据这个url:https://core.telegram.org/bots#deep-linking(假设有2个用户)

  1. 显示下面的链接到用户#2https://telegram.me/MyBot?start=美元unique_code
  2. 用户#2点击链接并开始与bot聊天。
  3. 用户#2回到我的网站,点击检查按钮。
  4. 站点发出getuupdates请求并找到与用户的unique_code相关联的chat_id
  5. 偏移量增加1.

现在有一个问题。当偏移量增加时,用户#1在用户#2之前开始与bot聊天。如果#1在偏移量增加#2后点击检查按钮,机器人将不会收到#1的消息。

注。我不想使用ssl和webhook

对不起,我的英语不好。

你想要达到的目标几乎是正确的。两件事:

  • 步骤3不需要。
  • 你应该把$unique_id存储在某个地方,连同用户在您的网站上的用户名。然后,当。人们用你的唯一id点击你的链接,你可以链接用户的userId到用户的用户名。

步骤变成:

  1. 生成唯一代码(我们称之为$unique_code)。保存这段代码连同该人的用户名当前登录在您的网站(让我们称之为$username)在一个数据库。
  2. 显示用户#2的链接与这个唯一的代码(https://telegram.me/MyBot?start=$unique_code)
  3. 用户点击链接,之后你的bot收到$unique_code ('/start $unique_code')的消息。
  4. bot将$unique_code与$username关联,并在数据库中存储发送消息的用户的chat_id。(message.chat。id -参见https://core.telegram.org/bots/api#message)

现在,每当您想发送消息到$username时,只需在数据库中查找他们的chat_id并向该chatId (https://core.telegram.org/bots/api#sendmessage)发送消息。