我想发送一个内联键盘,让用户通过他的
chat_id
进入某人的聊天。我知道我可以为内联键盘设置一个网址,例如:t.me/username
但类似的东西不适用于
chat_id : t.me/123456
如何做到这一点?
只需在
https://
的 InlineKeyboardButton
的开头使用 url
前缀即可。
因此
sendMessage方法的
reply_markup
参数应如下所示:
."reply_markup": {"inline_keyboard": [[{"text": "button text...", "url": "https://t.me/<chat_id or name of another user>"}]]}
带有
curl
的完整示例:
curl -v -H "Content-Type: application/json" -d '{"chat_id": 123456, "text": "here is your chat with <USERNAME>", "reply_markup": {"inline_keyboard": [[{"text": "here is your link to another user", "url": "https://t.me/<USERNAME>"}]]}}' https://api.telegram.org/bot<BOT_ID>:<BOT_TOKEN>/sendMessage
此行通过
Message
= 123456 向用户发送一个 id
。Message
包含带有一个 InlineKeyboardButton
的内联键盘。此按钮有一个链接,可与 ID 为 <USERNAME>
且相应页面 URL 为 https://t.me/<USERNAME>
的其他用户聊天。
不幸的是,如果您要查找的用户没有用户名,您无法创建
t.me
链接,因此您无法联系他:
您可以写信给您手机联系人中并且有 Telegram 的人。另一种联系人们的方式是在搜索字段中输入他们的 Telegam 用户名。
...
您可以在 Telegram 上设置公共用户名。然后其他用户就可以通过该用户名找到您 - 您将出现在“全局结果”下的联系人搜索中。请注意,找到您的人即使不知道您的电话号码,也可以向您发送消息。如果您对此不满意,我们建议不要在 Telegram 中设置用户名。
所以看起来唯一的解决方案是确保每个需要的联系人都有一个用户名。
您可以使用
tg://user?id={telegramUserId}
,但只能使用此链接 Telegram...