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

从Facebook账号移除应用后无法通过FB登录的问题求助

问题:Facebook登录在应用被移除后异常(React Native)

我已经在Facebook个人账户的「应用与网站」设置中删除(撤销)了我的应用,现在它移到了「已移除」标签页。当我尝试在我的React Native应用中通过Facebook登录时出现异常,以下是我严格按照官方文档编写的代码:

import { LoginManager } from 'react-native-fbsdk'
...
try {
  LoginManager.logInWithPermissions(['public_profile', 'email']).then(result => {
    if (result.isCancelled) {
      Toast.show('Canceled', Toast.SHORT);
      setIsLoadingButtonCanceled(false);
    } else {
      AccessToken.getCurrentAccessToken().then(data => {
        //... I did something here
      })
    }
  }).catch(err => {
    Toast.show('Failed', Toast.LONG);
  })
} catch (e) {
  console.log(e);
}

解决思路

我来帮你梳理下几个关键的排查和解决方向:

  • 先拿到具体的错误信息
    你现在的代码只提示了“Failed”,但没有打印具体的错误详情。建议修改catch块,把错误信息打印出来,比如:

    .catch(err => {
      console.error('Facebook登录错误详情:', err);
      Toast.show('Failed', Toast.LONG);
    })
    

    错误信息里通常会包含错误码、描述,比如是权限被拒绝、应用未被授权,还是网络问题,这是定位问题的核心。

  • 清除本地残留的AccessToken缓存
    当你在Facebook端移除应用后,React Native应用的本地可能还存着旧的授权令牌,这会干扰新的登录流程。建议在触发登录前主动清除缓存:

    import { AccessToken } from 'react-native-fbsdk';
    
    // 登录前先清理旧令牌
    const clearStaleToken = async () => {
      const existingToken = await AccessToken.getCurrentAccessToken();
      if (existingToken) {
        await AccessToken.clearCurrentAccessToken();
      }
    };
    
    // 调用登录前执行清除操作
    await clearStaleToken();
    LoginManager.logInWithPermissions(['public_profile', 'email'])
    // ... 后续的登录逻辑
    

    这样能确保登录流程是从零开始,不会被旧缓存影响。

  • 检查Facebook应用的后台配置
    确认你的Facebook开发者后台里,这个应用的状态是「上线」,或者在「测试模式」下你已经被添加为测试用户。如果应用没上线且你不在测试列表里,移除授权后就无法再次发起登录请求。

  • 模拟首次登录场景测试
    试着在设备上完全退出Facebook账号,重启你的应用,再触发登录流程。如果能正常弹出授权页面并完成授权,说明之前的问题就是本地缓存导致的;如果还是失败,结合之前打印的错误信息,去Facebook官方文档对应错误码找具体的解决方案。


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

火山引擎 最新活动