Android Facebook登录获取DisplayName

时间:2015-07-15 07:59:22

标签: android facebook facebook-graph-api

我正在使用Facebook Sdk登录我的应用程序。成功登录后,我必须为该特定用户调用graph api以获取该用户的电子邮件地址。有没有办法获得电子邮件地址和他的显示名称成功登录响应。

这是我成功登录后调用图谱API的代码。

GraphRequest.newMeRequest(result.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {

        @Override
        public void onCompleted(JSONObject object, GraphResponse response)
        {
            if (response.getError() != null) 
            {
                // handle error
            } 
            else
            {
                String email = object.optString("email");
                String id = object.optString("id");
                facebookID = id;
                Log.i("Log","email : " + email);
                Log.i("Log","id : " + id);
            }
        }
    }).executeAsync();

2 个答案:

答案 0 :(得分:1)

您可以在此链接中找到要使用的不同参数Facebook Graph-api。 试试这段代码

 private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        GraphRequest request = GraphRequest.newMeRequest(
                loginResult.getAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(
                            JSONObject object,
                            GraphResponse response) {
                        Log.v("LoginActivity", response.getRawResponse());
                        Log.v("AccessToken", AccessToken.getCurrentAccessToken().getToken());
                    }

                });
        Bundle parameters = new Bundle();
        parameters.putString("fields", "id,first_name,last_name,email,gender,birthday");
        request.setParameters(parameters);
        request.executeAsync();
    }

    @Override
    public void onCancel() {

    }

    @Override
    public void onError(FacebookException e) {

    }
};

请不要忘记覆盖onActivityResult,例如

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);

}

答案 1 :(得分:0)

登录Facebook后尝试此操作:

Profile profile = Profile.getCurrentProfile;
String name = profile.getName();
相关问题