2013-08-23 42 views
0

你好,我嘗試獲取用戶名和用戶ID從登錄它的用戶。從Facebook onCompleted沒有響應

我嘗試在我的onActivityResuly中使用此代碼,但未觸發它。

感謝您的幫助:)

final Session session = Session.getActiveSession(); 
       Request request = Request.newMeRequest(session, new Request.GraphUserCallback() { 

        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         // TODO Auto-generated method stub 
         if (session == Session.getActiveSession()) { 
          if (user != null) { 
           facebook_id = user.getId();//user id 
           facebook_name= user.getName(); 

           Log.i("facebook_id", facebook_id); 
           Log.i("facebook_name", facebook_name); 

           new GetProfilePicture().execute(); 

          } 
         } 
        } 
       }); 
       Request.executeBatchAsync(request); 
        super.onActivityResult(requestCode, resultCode, data2); 
+0

你測試它在真實設備或模擬器?你正在使用哪個版本的facebook sdk? –

+0

您正在使用哪個SDK? – Piyush

回答

2

我強烈建議在這裏檢查指導https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/

Best Explanation is availableFacebook Developers

你的案件按照循序漸進6,這將有助於你到底你想要!

試試這個工作對我來說:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // start Facebook Login 
    Session.openActiveSession(this, true, new Session.StatusCallback() { 

     // callback when session changes state 
     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
     if (session.isOpened()) { 

      // make request to the /me API 
      Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

      // callback after Graph API response with user object 
      @Override 
      public void onCompleted(GraphUser user, Response response) { 
       if (user != null) { 
       facebook_id = user.getId();//user id 
          facebook_name= user.getName(); 

          Log.i("facebook_id", facebook_id); 
          Log.i("facebook_name", facebook_name); 
       } 
      } 
      }); 
     } 
     } 
    }); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
    } 
+0

我收到此錯誤: 不贊成使用Request類型的方法executeMeRequestAsync(Session,Request.GraphUserCallback) – dasdasd

+0

@dasdasd按照步驟6在這裏https://developers.facebook.com/docs/android/getting-started/facebook -sdk-for-android /這會幫助你很多! –

+0

@dasdasd:嘗試使用newMeRequest代替executeMeRequestAsync。 – Ajay