Android Facebook SDK 4.X , how to get Email address and Facebook Access Token to pass it to Web Service

前端 未结 3 1522
情深已故
情深已故 2020-12-09 00:07

EDIT : My Question is how to get Email , UserId , Facebook Authentication with Facebook SDK 4.X , at this moment , with Ming Respond , i know how can i get Email , User Id

3条回答
  •  粉色の甜心
    2020-12-09 00:53

    I must add extra field for user Email.

        //register facebook login callback
        LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback()
        {
            @Override
            public void onSuccess (LoginResult loginResult)
            {
                Log.d(TAG, "FB: login success");
                showLoading(true);
    
                final String token = loginResult.getAccessToken().getToken();
    
                //prepare fields with email
                String[] requiredFields = new String[]{"email"};
                Bundle parameters = new Bundle();
                parameters.putString("fields", TextUtils.join(",", requiredFields));
    
                GraphRequest requestEmail = new GraphRequest(loginResult.getAccessToken(), "me", parameters, null, new GraphRequest.Callback()
                {
                    @Override
                    public void onCompleted (GraphResponse response)
                    {
                        if (response != null)
                        {
                            GraphRequest.GraphJSONObjectCallback callbackEmail = new GraphRequest.GraphJSONObjectCallback()
                            {
                                @Override
                                public void onCompleted (JSONObject me, GraphResponse response)
                                {
                                    if (response.getError() != null)
                                    {
                                        Log.d(TAG, "FB: cannot parse email");
                                        showDialog(getString(R.string.dialog_message_unknown_error));
                                        showLoading(false);
                                    }
                                    else
                                    {
                                        String email = me.optString("email");
    
                                        // send email and id to your web server
                                        //...
                                    }
                                }
                            };
    
                            callbackEmail.onCompleted(response.getJSONObject(), response);
                        }
                    }
                });
    
                requestEmail.executeAsync();
            }
    
            @Override
            public void onCancel ()
            {
                Log.d(TAG, "FB: login cancel");
                showDialog(getString(R.string.dialog_message_unknown_error));
            }
    
            @Override
            public void onError (FacebookException e)
            {
                Log.d(TAG, "FB: login error " + e.getMessage());
                showDialog(getString(R.string.dialog_message_unknown_error));
            }
        });
    

提交回复
热议问题