uniapp facebook登录报错"errmsg": "login:fail provider not find"如何解决?

我在使用UniApp开发应用时,集成了Facebook登录功能,但在调用登录接口时遇到了错误提示:“errmsg”: “login:fail provider not find”。请问这个错误是什么原因导致的?应该如何解决?我已经按照官方文档配置了Facebook开发者平台的应用ID和应用密钥,并且在manifest.json中正确填写了相关配置。是否还需要在其他地方进行额外设置?希望有经验的朋友能帮忙解答一下。

2 回复

检查manifest.json中是否配置了Facebook登录。在App模块配置中勾选OAuth(登录授权),并添加Facebook应用ID。确保已安装Facebook应用且版本支持。


在uni-app中遇到Facebook登录报错 "login:fail provider not find",通常是因为配置不正确或环境问题。以下是常见原因和解决方案:

1. 检查manifest.json配置

确保在 manifest.jsonApp模块配置 中勾选了 OAuth(登录授权),并在 OAuth登录配置 中添加了Facebook登录,填写正确的App ID和App Secret。

示例配置:

{
  "app-plus": {
    "modules": {
      "OAuth": {}
    },
    "oauth": {
      "facebook": {
        "appid": "你的Facebook应用ID",
        "appsecret": "你的Facebook应用密钥"
      }
    }
  }
}

2. 检查代码调用方式

确保使用正确的API调用Facebook登录,并指定provider为 "facebook"

uni.login({
  provider: 'facebook',
  success: function (loginRes) {
    console.log(JSON.stringify(loginRes));
  },
  fail: function (err) {
    console.error("登录失败:" + JSON.stringify(err));
  }
});

3. 确认Facebook应用配置

  • Facebook开发者平台 检查应用状态是否为 活跃
  • 添加平台:在应用设置中,添加 AndroidiOS 平台,并填写对应的包名(Android)或Bundle ID(iOS),与uni-app项目中 manifest.json 的配置一致。
  • 启用 Facebook登录 产品,并确保 OAuth重定向URI 正确。

4. 检查平台特定配置

  • Android:确保已生成并配置正确的开发/发布版SHA1证书指纹,并在Facebook应用中填入。
  • iOS:在 manifest.jsoniOS设置 中填写正确的URL Scheme(格式如 fb{AppID}),并在Facebook应用中配置Bundle ID。

5. 环境与调试

  • 使用真机测试,部分功能在模拟器中可能无法正常工作。
  • 检查网络环境,确保可以访问Facebook服务。
  • 更新uni-app SDK和基座到最新版本。

完成以上步骤后,重新生成自定义调试基座或打包应用,通常可以解决问题。如果仍有错误,请检查控制台日志或Facebook应用后台的错误详情。

回到顶部