php – Telegram Bot:在getUpdates方法中使用offset

我想为订阅源构建一个电报机器人,因此订阅者可以获得站点更新.但我需要用户开始与我的机器人聊天.我会根据这个网址使用深层链接:

https://core.telegram.org/bots#deep-linking

(假设有2个用户)

>显示用户#2的以下链接
https://telegram.me/MyBot?start= $UNIQUE_CODE
>用户#2点击链接并开始与机器人聊天.
>用户#2返回我的网站并点击检查按钮.
>站点发出getUpdates请求并查找与用户的unique_code关联的chat_id.
>偏移量将增加1.

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

附:我不想使用ssl和webhook

抱歉英语不好.

最佳答案 你正在努力实现的目标几乎正确.两件事情:

>步骤3是不必要的.
>你应该把这个$unique_id存储在某个地方,
连同用户在您网站上的用户名.然后,当这个
用户点击您的链接时,您可以链接
用户的userId到用户的用户名.

所以步骤变成:

>生成一个唯一的代码(让我们称之为$unique_code).保存此代码
连同该人的用户名
目前在您的网站上登录(让我们称之为$username)在数据库中.
>向用户#2显示具有此唯一代码的链接(https://telegram.me/MyBot?start= $unique_code)
>用户单击该链接,之后您的机器人会收到带有$unique_code(‘/ start $unique_code’)的消息.
>机器人将$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).

点赞