问题背景
有开发者反映集成AGC Auth从Facebook帐户登录时未收到电子邮件。
解决方案
认证服务没有权限替换Facebook API,如果想获取用户详细信息,可以直接使用Facebook graph API。
参考链接:https://developers.facebook.com/docs/graph-api/using-graph-api/
华为认证服务可以为您的应用快速构建安全可靠的用户认证系统,您只需在应用中访问认证服务的相关能力,而不需要关心云侧的设施和实现。
开发者可能使用FB邮件地址在华为服务/数据库中创建帐户,但它只保留此数据以及一些附加属性(如照片或可见名称)。
signInResult.getUser()返回AGConnectUser对象,AGConnectUser对象只有获取password, name, photo url等几个方法,没有获取用户详细信息的选项,因为没有设置它们的方法,所以不能从FB lib/API获取此列表。
REST API示例:
https://graph.facebook.com/{your-user-id} ?fields=birthday,email,hometown &access_token={your-user-access-token}
而从AgConnectUser类获得user-id和access-token。
请参考以下代码:
AGConnectAuth.getInstance().signIn(this,AGConnectAuthCredential.Facebook_Provider).addOnSuccessListener(new OnSuccessListener<SignInResult>() {
@Override
public void onSuccess(SignInResult signInResult) {
// onSuccess
AGConnectUser user = signInResult.getUser();
String user-id=user. getUid();
Task<TokenResult> access-token= user.getToken(true);
TokenResult tokenResult = access-token.getResult();
String token= tokenResult.getToken();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// onFail
}
});
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
{{o.name}}
{{m.name}}