You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需用户点击即可获取Chrome Custom Tabs内URL中的access token?

无用户点击从CustomTabs获取Facebook Access Token 实现方案

核心原理

通过配置深度链接(Deep Link) 作为OAuth授权的回调地址,Facebook授权完成后会自动触发重定向到你配置的应用专属链接,系统会直接唤起你的应用接收回调,全程无需用户额外点击操作。

实现步骤

1. 配置Facebook后台重定向地址

  • 进入Facebook开发者后台对应应用的「Facebook登录 > 设置」页面,在「有效OAuth重定向URI」栏添加你自定义的深度链接,示例:myapp://fb-auth,其中myapp替换为你应用的唯一Scheme。

2. 应用端注册回调接收组件

  • 在AndroidManifest中为你用来接收授权回调的Activity添加Intent Filter配置,示例代码:
<activity android:name=".FbAuthReceiverActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="myapp"
            android:host="fb-auth" />
    </intent-filter>
</activity>

3. 构造CustomTabs启动的授权链接

  • 构造Facebook OAuth授权链接时,redirect_uri参数填写你刚才配置的深度链接,response_type参数指定为token,示例链接:
https://www.facebook.com/v18.0/dialog/oauth?client_id=你的FB应用ID&redirect_uri=myapp%3A%2F%2Ffb-auth&response_type=token&scope=public_profile,email
  • 用上述链接启动CustomTabs即可,用户完成登录授权后,Facebook授权页会自动触发重定向到你配置的深度链接。

4. 回调中提取Access Token

  • 在回调Activity的onCreate或onNewIntent方法中解析传入的Uri,提取锚点部分的Access Token参数,示例Kotlin代码:
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    intent.data?.let { authUri ->
        // 重定向Uri格式:myapp://fb-auth#access_token=xxx&expires_in=xxx&token_type=bearer
        val paramMap = authUri.fragment?.split("&")?.associate {
            val kv = it.split("=")
            kv[0] to kv[1]
        } ?: emptyMap()
        val accessToken = paramMap["access_token"]
        // 拿到Access Token后执行后续业务逻辑
    }
    finish() // 处理完成后直接关闭回调页即可
}

注意事项

不管用户是否安装Facebook客户端,该逻辑都能正常生效,CustomTab打开的网页授权页同样会自动触发重定向,不会要求用户手动点击跳转。
如果你的业务要求服务端换Token,可以将response_type改为code,提取code参数传给服务端完成后续兑换即可。

内容的提问来源于stack exchange,提问作者UchihaItachi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:27:00