深度链接到电报机器人

时间:2020-01-14 10:15:34

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

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

T.me/MycompanynameBot?start=Microsoft

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

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

谢谢。

1 个答案:

答案 0 :(得分: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,我可以看到邀请了该机器人的用户数量。

希望有用。