无缝 Telegram 登录
当用户点击内联键盘中的某些链接或 URL 按钮时,机器人或 Telegram 网站可能会要求用户通过 Telegram 登录到某个网站。
机器人 URL 授权
当用户点击keyboardButtonUrlAuth时,应调用messages.requestUrlAuthbutton_id,并提供按钮的 URL 以及容器消息的 ID 和 peer 属性。返回的urlAuthResultRequest对象将包含有关授权请求的更多详细信息:
- 该domain参数将包含用户登录的网站域名(例如:comments.app)。
- 该bot参数将包含有关机器人的信息,该机器人将用于用户授权(例如:DiscussBot)。
- request_write_access如果机器人想要向用户发送消息,则会进行此设置。
信息应以提示框的形式显示:
如果用户同意登录该 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对象将包含有关授权请求的更多详细信息:
- 该domain参数将包含用户登录的网站域名(例如:comments.app)。
- request_write_access如果网站想要向用户发送消息,则会进行此设置。
信息应以提示框的形式显示。
如果用户同意登录该 URL,则应调用messages.acceptUrlAuthwrite_allowed方法(如果已请求权限且用户已同意,则最终会设置该值)。结果将是一个urlAuthResultAccepted对象,其中包含要打开的最终 URL。
或者也可以返回urlAuthResultDefault,在这种情况下,必须打开原始 URL。如果用户在拒绝授权请求的情况下打开链接,也必须执行相同的操作。
相关文章
客户端配置
MTProto API 具有多个配置参数,可以使用相应的方法获取这些参数。