2013-04-28 6 views
5

मैं (मुझे लगता है) फेसबुक ट्यूटोरियल का पालन किया लेकिन मैं इसे ठीक से काम नहीं कर सकता। मैं एफबी के माध्यम से लॉगिन करने की कोशिश कर रहा हूं और फिर उपयोगकर्ता के बारे में जानकारी प्राप्त कर रहा हूं। मेरे पास है:एंड्रॉइड फेसबुक एसडीके - session.isOpened() हमेशा झूठी

private Session.StatusCallback statusCallback = new Session.StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
      System.out.println("GOOD"); 
      if (session.isOpened()) { 
       System.out.println("AWESOME"); 
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

        // callback after Graph API response with user object 
        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         m_user = user; 
         System.out.println("Hello " + user.getName()); 
        } 
       }); 
      } 
     } 

और फिर:

public void onBtnFacebookClick(final View v) { 
     Session session = Session.getActiveSession(); 
     if (session == null) { 
      session = new Session(this); 
      Session.setActiveSession(session); 
      if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) { 
       session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
      } 
     } 
     if (!session.isOpened() && !session.isClosed()) { 
      session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
     } else { 
      Session.openActiveSession(this, true, statusCallback); 
     } 
    } 

लेकिन ऐसा लगता है कि "भयानक" मुद्रित कभी नहीं किया गया है ("अच्छा" छपा है) eventhough मैं अमेरिकन प्लान के लिए लॉग इन करने में कामयाब रहे। या शायद मुझे समझ में नहीं आता कि session.isOpened() का अर्थ क्या है?

उत्तर

9

ठीक है अब यह काम कर रहा है। मुझे दो समस्याएं थीं। एक गलत हैश कुंजी है जिसे मैंने these निर्देशों के बाद तय किया है। दूसरा यह है कि मुझे नहीं पता था कि मुझे इस विधि को ओवरराइड करना था:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Session.getActiveSession() 
      .onActivityResult(this, requestCode, resultCode, data); 
    } 
संबंधित मुद्दे