uni-app Facebook APP授权登录时 uni.getUserInfo 无法获取用户信息

uni-app Facebook APP授权登录时 uni.getUserInfo 无法获取用户信息

示例代码:

uni.login({
provider: 'facebook',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'facebook',
success: function(info) {
// 获取用户信息成功, info.authResult保存用户信息
}
})
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
});

操作步骤:

正常执行

预期结果:

{
"errMsg": "getUserInfo:ok",
"userInfo": {
"headimgurl": "https://graph.facebook.com/v12.0/25341631652102630/picture?height=120&width=120&migration_overrides=%7Boctober_2012%3Atrue%7D&access_token=.....",
"nickname": "Simon",
"unionid": "2534163165...",
"email": "",
"openId": "25341631....",
"nickName": "Simon",
"avatarUrl": "https://graph.facebook.com/v12.0/25341631652102630/picture?height=120&width=120&migration_overrides=%7Boctober_2012%3Atrue%7D&access_token=..."
}
}

实际结果:

IOS无任何反应、安卓则正常返回预期信息



| 信息项         | 内容             |
|----------------|------------------|
| 产品分类       | uniapp/App       |
| PC开发环境     | Mac              |
| PC操作系统版本 | 14.3.1           |
| HBuilderX类型  | 正式             |
| HBuilderX版本  | 3.8.12           |
| 手机系统       | iOS              |
| 手机系统版本   | iOS 17           |
| 手机厂商       | 苹果             |
| 手机机型       | iPhone 13 Pro    |
| 页面类型       | vue              |
| vue版本        | vue2             |
| 打包方式       | 云端             |
| 项目创建方式   | HBuilderX        |

更多关于uni-app Facebook APP授权登录时 uni.getUserInfo 无法获取用户信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

楼主 请问解决了吗

更多关于uni-app Facebook APP授权登录时 uni.getUserInfo 无法获取用户信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni-app 进行 Facebook 授权登录时,如果 uni.getUserInfo 无法获取用户信息,可能是以下几个原因导致的:

1. 授权流程未完成

  • 确保用户在授权登录时已经完成了 Facebook 的授权流程。如果用户没有完成授权,uni.getUserInfo 将无法获取用户信息。
  • 检查授权登录的流程是否正确,确保调用了 uni.login 并且成功获取了 codeaccess_token

2. 权限不足

  • Facebook 登录需要用户授权某些权限(如 public_profile, email 等)。如果用户没有授权这些权限,uni.getUserInfo 将无法获取完整的用户信息。
  • 确保在 Facebook 开发者后台正确配置了所需权限,并在代码中请求了这些权限。

3. Facebook AppId 配置错误

  • 确保在 uni-app 项目中正确配置了 Facebook 的 AppId。如果 AppId 配置错误,授权登录将无法正常工作。
  • 检查 manifest.json 文件中的 facebook 配置是否正确。

4. 后端未正确处理授权信息

  • 如果 uni.getUserInfo 依赖后端接口来获取用户信息,确保后端已经正确实现了 Facebook 的用户信息获取逻辑。
  • 检查后端是否正确处理了 access_token,并通过 Facebook 的 Graph API 获取了用户信息。

5. Facebook Graph API 调用失败

  • uni.getUserInfo 可能需要通过 Facebook 的 Graph API 来获取用户信息。如果 Graph API 调用失败,将无法获取用户信息。
  • 检查是否正确调用了 Facebook 的 Graph API,并确保 access_token 是有效的。

6. uni-app 版本问题

  • 确保使用的 uni-app 版本支持 Facebook 登录功能。如果版本过旧,可能存在兼容性问题。
  • 更新 uni-app 到最新版本,或者检查官方文档中是否有关于 Facebook 登录的更新说明。

7. Facebook 开发者后台配置问题

  • 确保在 Facebook 开发者后台正确配置了 OAuth 重定向 URI有效 OAuth 重定向 URI
  • 检查 应用域名网站 URL 是否正确配置,确保与 uni-app 项目的域名一致。

8. 调试与日志

  • 使用 console.log 或调试工具检查 uni.loginuni.getUserInfo 的返回值,查看是否有错误信息。
  • 如果 uni.getUserInfo 返回错误,可以根据错误信息进一步排查问题。

9. 检查网络问题

  • 确保网络连接正常,尤其是在调用 Facebook 的 Graph API 时,网络问题可能导致请求失败。

示例代码

uni.login({
  provider: 'facebook',
  success: function (loginRes) {
    // 获取 access_token
    const accessToken = loginRes.authResult.access_token;
    
    // 调用 uni.getUserInfo
    uni.getUserInfo({
      provider: 'facebook',
      success: function (infoRes) {
        console.log('用户信息:', infoRes.userInfo);
      },
      fail: function (err) {
        console.error('获取用户信息失败:', err);
      }
    });
  },
  fail: function (err) {
    console.error('登录失败:', err);
  }
});
回到顶部