3

我有一个简单的用例。当用户点击下面的链接时,

T.me/MycompanynameBot?start=Microsoft

我想向他展示与 Microsoft 内的 3 个 Telegram 频道相对应的 3 个内联按钮。这可能吗?

关键是机器人必须能够从 URL 中检索参数。

谢谢你。

4

1 回答 1

4

是的,可以通过answerCallbackQuery检索机器人参数

或者,可以将用户重定向到指定的游戏 URL。要使此选项生效,您必须首先通过为您的机器人创建游戏@Botfather并接受条款。否则,您可以使用以下链接:
t.me/your_bot?start=XXXX
使用参数打开您的机器人。

这是我为您制作的示例:

 {
   "ok": true,
   "result": [{
     "update_id": 89590932,
     "message": {
       "message_id": 5978,
       "from": {
         "id": 223110107,
         "is_bot": false,
         "first_name": "Ğąme",
         "last_name": "Ǿver!",
         "username": "GameO7er",
         "language_code": "en"
       },
       "chat": {
         "id": 223110107,
         "first_name": "Ğąme",
         "last_name": "Ǿver!",
         "username": "GameO7er",
         "type": "private"
       },
       "date": 1579094448,
       "text": "/start Microsoft",
       "entities": [{
         "offset": 0,
         "length": 6,
         "type": "bot_command"
       }]
     }
   }]
 }

如您所见, type=bot_command因此您可以解析消息并从原始文本或您想做的任何事情中if (type == "bot_command")获取文本和子字符串。/start

在许多情况下,我会使用参数检测用户,例如,当我想知道谁邀请了这个用户加入机器人时,我会以这种格式分享链接:

t.me/NameBot?start=ReferUserID _

例如 :

t.me/NameBot?start=223110107 _

是我的 ID,我可以看到我邀请了多少用户加入机器人。

希望有用。

于 2020-01-15T13:33:04.843 回答