无缝 Telegram 登录

当用户点击内联键盘中的某些链接或 URL 按钮时,机器人或 Telegram 网站可能会要求用户通过 Telegram 登录到某个网站。

机器人 URL 授权

当用户点击keyboardButtonUrlAuth时,应调用messages.requestUrlAuthbutton_id,并提供按钮的 URL 以及容器消息的 ID 和 peer 属性。返回的urlAuthResultRequest对象将包含有关授权请求的更多详细信息:

信息应以提示框的形式显示:

无缝 Telegram 登录

如果用户同意登录该 URL,则应调用`messages.acceptUrlAuth`write_allowed方法(如果已请求权限且用户已同意,则最终会设置该值)。返回结果将是一个`urlAuthResultAccepted`对象,其中包含要打开的最终 URL,该 URL 将包含一个查询字符串(其中包含请求的信息)和一个哈希值,服务在收到该哈希值时必须对其进行验证。

也可以返回urlAuthResultDefault ,在这种情况下,必须打开keyboardButtonUrlAuthurl的链接。如果用户在拒绝授权请求的情况下打开链接,也必须执行相同的操作。

链接 URL 授权

Telegram 支持在某些网站上自动授权,例如在应用内打开 HTTP URL、点击消息中的链接或点击keyboardButtonUrl时。

自动授权

客户端在打开官方 Telegram 网站时应自动验证用户身份,该网站列在客户端配置对象的autologin_domains键中 » 。

点击链接后,必须修改 URL,在查询字符串后添加autologin_token “»来自MTProto 配置对象”字样,如下所示:

原始网址:https://somedomain.telegram.org/path?query=string#fragment=value
修改后网址:https://somedomain.telegram.org/path?query=string&autologin_token=$autologin_token#fragment=value

确保所使用的配置信息autologin_token不超过10000几秒钟,如果超过几秒钟,则必须使用help.getConfig重新获取配置信息才能使用。

手动授权

客户端应显示类似于机器人使用的确认提示,以便在打开某些 Telegram 网站时验证用户身份,这些网站列在客户端配置对象url_auth_domains的键中 »。

应该调用messages.requestUrlAuthurl方法,只提供原始 URL 。返回的urlAuthResultRequest对象将包含有关授权请求的更多详细信息:

信息应以提示框的形式显示。

如果用户同意登录该 URL,则应调用messages.acceptUrlAuthwrite_allowed方法(如果已请求权限且用户已同意,则最终会设置该值)。结果将是一个urlAuthResultAccepted对象,其中包含要打开的最终 URL。

或者也可以返回urlAuthResultDefault,在这种情况下,必须打开原始 URL。如果用户在拒绝授权请求的情况下打开链接,也必须执行相同的操作。

相关文章

客户端配置

MTProto API 具有多个配置参数,可以使用相应的方法获取这些参数。