2012-12-22 38 views
3

可能重複:
Android: How to get friends birth dates from facebook calendar using Graph API安卓:獲取好友生日使用圖形API的Facebook SDK 3.0

參考:https://stackoverflow.com/a/13926065/1770916

我設置權限的獲取朋友的生日和列表。代碼如下。

private void signInWithFacebook() { 

    mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
     } 
    }, null, false); 

    String applicationId = Utility.getMetadataApplicationId(getBaseContext()); 
    mCurrentSession = mSessionTracker.getSession(); 

    if (mCurrentSession == null || mCurrentSession.getState().isClosed()) { 
     mSessionTracker.setSession(null); 
     Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build(); 
     Session.setActiveSession(session); 
     mCurrentSession = session; 
    } 

    if (!mCurrentSession.isOpened()) { 
     Session.OpenRequest openRequest = null; 
     openRequest = new Session.OpenRequest(MainActivity.this); 

     if (openRequest != null) { 
      openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); 
      openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location", "friends_birthday","read_friendlists")); 
      openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK); 
      mCurrentSession.openForRead(openRequest); 
     } 
    } 
} 

但我只獲得朋友ID和姓名。

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

    if (mCurrentSession.isOpened()) { 
     Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() { 

       // callback after Graph API response with user object 
       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        Log.d("AL", user.getId() + " " + user.getName() + " " + user.getInnerJSONObject()); 
       } 
      }); 


     Request.executeMyFriendsRequestAsync(mCurrentSession, new Request.GraphUserListCallback() { 

      @Override 
      public void onCompleted(List<GraphUser> users, Response response) { 
       Log.d("AL",""+response.toString()); 
       for (int i=0;i<users.size();i++){ 
        Log.d("AL",""+users.get(i).toString()); 
        welcome.setText("Done"); 
       } 

      } 
     }); 
     } 
    } 

通過使用上面的代碼我添加的權限,但沒有得到朋友的額外這樣想的生日後,讓用戶像電子郵件,生日等額外的東西。

我在做什麼錯?

+0

哪裏是你調用'/ ME /朋友?'你忘記在'fields'參數中添加想要返回的額外字段? – Igy

回答

5

爲了獲取好友信息,我們需要得到HttpConnection爲以下url

"https://graph.facebook.com/me/friends?access_token="+ mAccessToken + "&fields=id,first_name,last_name,location,picture,birthday"); 

這裏添加你需要的字段。 我認爲它會運行

+0

獲取空數據[] – Prasad

+0

@ M.J.我有空陣列..請幫我 –

0

在這裏,我們得到任何東西這個

String url = "https://graph.facebook.com/me/friends?fields=birthday,name&access_token="+ facebook.getAccessToken(); 

使用該IAM越來越生日

JSONObject JOAlbums = JAAlbums.getJSONObject(i); 

String date = DaysCount(JOAlbums.getString("birthday")); 
+0

獲取空數據[] – Prasad

+0

@ NagarjunaReddy我有空陣列..請幫我 –

相關問題