发送内联键盘,如 t.me/用户名,但用于电报 php 中的用户 ID

问题描述 投票:0回答:2

我想发送一个内联键盘,让用户通过他的

chat_id
进入某人的聊天。我知道我可以为内联键盘设置一个网址,例如:
t.me/username
但类似的东西不适用于

chat_id : t.me/123456

如何做到这一点?

php bots telegram telegram-bot php-telegram-bot
2个回答
1
投票

只需在

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 中设置用户名。

所以看起来唯一的解决方案是确保每个需要的联系人都有一个用户名。

更多信息可以在这里这里找到。


0
投票

您可以使用

tg://user?id={telegramUserId}
,但只能使用此链接 Telegram...

© www.soinside.com 2019 - 2024. All rights reserved.