2014-01-07 3 views
1

Я делаю приложение, и мне нужно получить все новые уведомления от Facebook. Я успешно вхожу в систему и получаю разрешение manage_notifications для своего приложения. Этот кусок кода успешно загружает строку JSON из facebook.Не получать все уведомления из Facebook SDK, Graph-API

Session session = Session.openActiveSessionFromCache(ctx); 
    if (session != null && session.isOpened()) { 
     Request notificationsRequest = Request.newGraphPathRequest(
       session, "/me/notifications", 
       new Request.Callback() { 

        @Override 
        public void onCompleted(Response response) { 
         GraphObject object = response 
           .getGraphObject(); 
         if (object != null) { 
          notificationsNewString = object 
            .getInnerJSONObject() 
            .toString(); 

          try { 
           notificationsOldString = saver.getJsonFromInternalCache(); 
          } catch (IOException e) { 
           notificationsOldString = null; 
          } 
          try { 
           compareOldAndNewData(); 
          } catch (ParseException e) { 
           e.printStackTrace(); 
          } 

          createNotif(); 

         } else { 
          notificationsNewString = "Notifications returns null"; 
         } 

        } 
       }); 
     Request.executeBatchAndWait(notificationsRequest); 
    } else { 
     Log.i("TAGTAG", "Session not open!"); 
    } 

Но некоторые люди испытывают трудности с приложением, поскольку Facebook не отправляет json все новые уведомления. Особенно уведомление, если кто-то комментирует статус, который они комментируют. (В Facebook помечается как новое уведомление, но json пуст).

Его о некоторых разрешениях или это ошибка?

Спасибо.

+0

Здравствуйте, У меня такая же проблема, я создал отчет об ошибке: https://developers.facebook.com/bugs/1438457359755749/ –

ответ

0

Я нашел другой способ. Я отправлю его в случае, если кто-то считает полезным

private void onSessionStateChange(Session session, SessionState state, Exception exception) { 
if (state.isOpened()) { 
    InboxMessage.setVisibility(View.VISIBLE); 

    new Request(session,"/me/notifications", null,HttpMethod.GET,new Request.Callback() { 

       public void onCompleted(Response response) { 
        GraphObject object = response.getGraphObject(); 
         if (object != null) { 
          InboxMessage.setText(object.getProperty("data").toString()); 
         } else { 
          InboxMessage.setText("Notifications returns null"); 
         } 
       } 
      } 
     ).executeAsync(); 
} else { 
    InboxMessage.setVisibility(View.INVISIBLE); 
    Log.i(TAG, "Logged out..."); 
} 
} 
Смежные вопросы