2014-11-07 4 views
1

Хорошо, во-первых, я посетил все связанные с этим вопросы по StackOverflow, и я не смог найти ответ. Поэтому, пожалуйста, не отмечайте это как дубликат аналогичного вопроса.Facebook Graph API v2.2 me/friends только возвращает нет. пользователей

Я использую новейшие графические API v2.2, чтобы получить список друзей FB, которые используют мое приложение.

Запрос Android код-

Session activesession=Session.getActiveSession(); 
    if(activesession!=null){ 
     new Request(
       activesession, 
       "/v2.2/me/friends", 
       null, 
       HttpMethod.GET, 
       new Request.Callback() { 
        @Override 
        public void onCompleted(Response response) { 
         // TODO Auto-generated method stub 
         String strresponse=response.getRawResponse(); 
         JSONObject jsonresponse=null; 
         try { 
          jsonresponse = new JSONObject(strresponse);        
         } catch (JSONException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
        } 
       } 
      ).executeAsync();   
    } 
    else{ 
     System.out.println("Session is NULL"); 
    } 
} 

response- { "данные": [

], "Резюме": { "TOTAL_COUNT": 199 }}

Я точно знаю, что у меня есть один друг в списке друзей FB, который загрузил то же приложение & вошел в систему к нему через FB.

Также я пытался что-то подобное с помощью FB Graph инструмент исследователя & он дал мне тот же response-

Я ожидаю, по крайней мере, одну деталь пользователя в массиве данных. Не уверен, что мне здесь не хватает.

Просьба сообщить.

Спасибо!

+0

ли вы и друг грант 'user_friends' разрешение? – CBroe

+0

Вы имеете в виду авторизацию приложения, чтобы подружиться? Да, мы оба это сделали, войдя в приложение. – user1122549

+0

В настоящее время мои данные о приложении недоступны на FB. Мне интересно, может ли это вызвать проблему? – user1122549

ответ

0

попробовать это меня/taggable_friend instend меня/друга надеюсь, что это будет работает

Session activesession = Session.getActiveSession(); если (activesession! = NULL) { новый запрос ( activesession, "/v2.2/me/taggable_friend", нуль, HttpMethod.GET, новый Request.Callback() { @Override общественного недействительными OnCompleted (ответ отклика) {// TODO Авто-порожденных метод заглушки Строка strresponse = response.getRawResponse(); JSONObject jsonresponse = NULL; попробовать { jsonresponse = новый JSONObject (strresponse);
} поймать (е JSONException) { // TODO Au к-образуемому блоку catch e.printStackTrace(); } } } ) .executeAsync();
} else { System.out.println («Session is NULL»); }}

благодаря

0

попробовать, как это для v2.2 в фейсбуке

Bundle bundle = new Bundle(); 
bundle.putString("fields", "name,picture,id"); 

new Request(session, "/me/friends", bundle, HttpMethod.GET, new Callback() { 
    @Override 
    public void onCompleted(Response response) { 
     System.out.println("response=============="+response); 
    } 
}).executeAsync(); 
+0

не разрешен – NickUnuchek

0

Попробуйте

public void getFriends() { 
    Session activeSession = Session.getActiveSession(); 
    if (activeSession.getState().isOpened()) { 
     new Request(
       activeSession, 
       "/me/friends", 
       null, 
       HttpMethod.GET, 
       new Request.Callback() { 
        public void onCompleted(Response response) { 
         GraphObject graphObject = response.getGraphObject(); 
         if (graphObject != null) { 
          try { 
           JSONObject jsonObject = graphObject.getInnerJSONObject(); 
           JSONArray data = jsonObject.getJSONArray("data"); 

           for (i = 0; i < data.length(); i++) { 
            final String name = data.getJSONObject(i).getString("name"); 
            final String id = data.getJSONObject(i).getString("id"); 
           } 
          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 
         } 
        } 
       } 
     ).executeAsync(); 
    } 
} 
Смежные вопросы