2015-09-04 113 views
0

我試圖使用Facebook圖形Api和解析API一起提取信息。調用Graph API時,GraphRepsone爲空。問題是因爲accessToken爲空,但我不知道如何嘗試許多不同的方式後修復。解析和Facebook SDK accessToken返回null

buttonSignUpWithFacebook.setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View v) { 
       // this is where you can begin doing facebook sign up process 


       Log.i(TAG, "did click on facebook button"); 

       List<String> permissions = Arrays.asList("user_location", "user_friends", "email", "public_profile"); 

       ParseFacebookUtils.logInWithReadPermissionsInBackground(SignUpActivity.this, permissions, new LogInCallback() { 
        @Override 
        public void done(ParseUser user, ParseException err) { 

         if (user == null) { 
          Log.d("App", "Uh oh. The user cancelled the Facebook login."); 
         } else if (user.isNew()) { 
          Log.d("App", "User signed up and logged in through Facebook!"); 
          startActivity(new Intent(SignUpActivity.this, Home.class)); 

         } else { 
          Log.d("App", "User logged in through Facebook!"); 
          setupUser(); 
          startActivity(new Intent(SignUpActivity.this, Home.class)); 
         } 

        } 

        public void setupUser() { 
         accessToken = AccessToken.getCurrentAccessToken(); 
        } 
       }); 




      GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(JSONObject object, GraphResponse response) { 
        if (response != null) { 
         try { 
          String email = object.getString("email"); 
          String firstName = object.getString("first_name"); 
          Log.d(TAG, "first name " + firstName); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
//      String firstName = jsonResponseObject.getFirstName(); 
//      String lastName = jsonResponseObject.getLastName(); 
        } 
       } 
      }); 
      Bundle param = new Bundle(); 
      param.putString("fields","cover, birthday, email, first_name, last_name, "); 
      request.setParameters(param); 
      request.executeAsync(); 
     } 

     }); 

    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     ParseFacebookUtils.onActivityResult(requestCode, resultCode, data); 
    } 

回答