我有一个简单的用例。当用户单击下面的链接时,
T.me/MycompanynameBot?start=Microsoft
我想向他展示3个与Microsoft内部3个Telegram频道相对应的嵌入式按钮。这可能吗?
关键是机器人必须能够从URL检索参数。
谢谢。
答案 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,我可以看到邀请了该机器人的用户数量。
希望有用。