2017-09-26 29 views

回答

0

使用此代码以下为Facebook登录:

login.setLoginBehavior(LoginBehavior.WEB_ONLY); 
     login.setReadPermissions(Arrays.asList(
       "public_profile", "email", "user_birthday", "user_friends")); 
     login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 

      Log.e("ACESS_ON_SUCCESS---", "" + loginResult.getAccessToken()); 
      token = loginResult.getAccessToken(); 

      GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 


       @Override 
       public void onCompleted(JSONObject object, GraphResponse response) { 
        Log.e("ACESS_ON_COMPLETED--", "" + AccessToken.getCurrentAccessToken()); 

        Log.e("FaceBook Response", response.toString()); 

        String responseStr = response.toString(); 
        sharedpreferences = App.getInstance().getDefaultAppSharedPreferences(); 
         editor = sharedpreferences.edit(); 

        try { 
         if (responseStr.contains("\"id\"")) { 
          id = object.getString("id"); 
          Log.e("USER-ID = ", id); 
          editor.putString(SharedPreferencesConstants.facebookId,id); 
         } 

         if (responseStr.contains("\"name\"")) { 
          name = object.getString("name"); 
          Log.e("NAME = ", name); 
          editor.putString(SharedPreferencesConstants.userName,name); 
         } 

         if (responseStr.contains("\"email\"")) { 
          email = object.getString("email"); 
          Log.e("EMAIL = ", email); 
          editor.putString(SharedPreferencesConstants.userEmail,email);       } 

         if (responseStr.contains("\"birthday\"")) { 
          birthday = object.getString("birthday"); 
          Log.e("BIRTHDAY = ", birthday); 
          editor.putString(SharedPreferencesConstants.userFbBirthday,birthday); 
          String strYear = birthday.substring(6, 10); 
          Log.e("BIRTHDAY LEN", strYear); 
          editor.putString(SharedPreferencesConstants.userFbBirthdayYear,strYear); 
         } 



         //EXTRACT PICTUREOBJECT FROM MAINJSONOBJECT::::--- 
         if (responseStr.contains("\"picture\"")) { 
          JSONObject pictureObject = object.getJSONObject("picture"); 
          Log.e("PICTUREOBJ FRM MAINOBJ", "" + pictureObject.toString()); 

          //EXTRACT DATAOBJECT FROM PICTUREOBJECT::::--- 
          JSONObject dataObject = pictureObject.getJSONObject("data"); 

          //EXTRACT PROFILE_PIC FROM DATAOBJECT::::--- 
          profile_pic = dataObject.getString("url"); 

      Bundle params = new Bundle(); 
      parameters.putString("limit", total_friends_count); 
      request1.setParameters(params); 
      request1.executeAsync();*/ 
     } 

     @Override 
     public void onCancel() { 
      Log.e("Error","canceled"); 
     } 

     @Override 
     public void onError(FacebookException error) { 
      Log.e("Error",error.getMessage()); 
      Toast.makeText(WelcomeActivity.this, "FB Integration Failed", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 
相关问题