无法从AGC Facebook Auth获取Email ID

 

问题背景

有开发者反映集成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}}

猜你喜欢

转载自my.oschina.net/u/4478396/blog/5552974