You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio中集成Facebook Android SDK登录时出现“无法加载URL”错误的求助

我来帮你搞定这个Facebook登录的域名错误问题,这个坑我之前踩过好几次,其实就是Facebook开发者后台的配置没匹配上你的应用,跟着下面的步骤一步步来就行:

解决方案步骤

1. 进入Facebook开发者后台配置页

登录Facebook Developer平台,找到你正在开发的应用,进入「Settings」->「Basic」页面——这是所有核心配置的入口。

2. 配置App Domains(应用域名)

错误提示里说的就是这个字段没加对:

  • 在「App Domains」输入框中,添加你的应用所使用的所有域名及子域名。比如你的线上应用用了myapp.com,那www.myapp.comapi.myapp.com这些相关子域都要加进去。
  • 划重点:本地测试不要加localhost127.0.0.1,Facebook的App Domains不支持本地IP,本地测试的配置看下面的步骤。

3. 填写Valid OAuth Redirect URIs(OAuth回调地址)

这个是很多人容易忽略的关键项:

  • 如果还没添加Facebook Login产品,先在左侧「Products」菜单里添加,然后进入Facebook Login的「Settings」页面;如果已经添加过,直接在「Settings」->「Basic」页面拉到下方找到这个字段。
  • 填写你的应用实际的登录回调地址:
    • 线上环境:比如https://myapp.com/login/callback这类实际跳转地址;
    • 本地Android测试:必须填fb{你的AppID}://authorize,把{你的AppID}替换成你后台应用的真实ID,这个是Facebook Android SDK默认的回调协议。

4. 配置Android平台专属信息

回到「Settings」->「Basic」页面,滚动到「Add Platform」按钮,选择Android,然后填写以下信息:

  • Google Play Package Name:和你Android Studio项目里的包名完全一致,比如com.yourteam.yourapp
  • Class Name:处理Facebook登录回调的Activity全类名,比如com.yourteam.yourapp.ui.LoginActivity
  • Key Hashes:这个必须准确生成,不然会出现权限验证失败的问题。用下面的命令行生成(debug和release环境要分别生成并添加):
    keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
    
    (输入密码默认是android

5. 保存配置并重启测试

所有配置修改完成后,一定要点击页面底部的「Save Changes」按钮,然后重启你的Android应用,再测试登录功能。

额外注意事项
  • 别搞混「App Domains」和「Valid OAuth Redirect URIs」:前者是你的应用所属的域名范围,后者是登录完成后跳转的具体地址;
  • 确保AndroidManifest.xml里的AppID配置正确:检查meta-data标签是否写对:
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id"/>
    
    并且strings.xml里的facebook_app_id和后台的应用ID完全一致;
  • 如果还是报错,先清理Facebook应用的缓存(或者卸载重装),再测试——有时候Facebook会缓存旧的配置信息。

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

火山引擎 最新活动