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并且成功获取了code或access_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.login和uni.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);
}
});

