【问题标题】:Deeplinking into a telegram bot深度链接到电报机器人
【发布时间】:2020-05-01 01:18:14
【问题描述】:

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

T.me/MycompanynameBot?start=Microsoft

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

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

谢谢。

【问题讨论】:

    标签: telegram telegram-bot python-telegram-bot telegram-webhook node-telegram-bot-api


    【解决方案1】:

    是的,可以通过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,我可以看到我邀请了多少用户加入机器人。

    希望有用。

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 2017-08-18
      • 2017-05-31
      • 2018-03-01
      • 1970-01-01
      • 2020-12-11
      • 2023-03-12
      • 2018-07-22
      • 2020-10-28
      相关资源
      最近更新 更多