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

Я считаю, что в API 3.0 это непросто.

Может кто-нибудь объяснить лучший метод для этого?

Я использую этот код:

Request notificationsRequest = Request.newGraphPathRequest(
        Session.getActiveSession(), "/me/notifications",
        new Request.Callback() {

            @Override
            public void onCompleted(Response response) {
                GraphObject object = response.getGraphObject();
                if (object != null) {
                    notifications = object.getProperty("data")
                            .toString();
                } else {
                    notifications = "Notifications returns null";
                }
            }
        });

Но он возвращается null.

0
Roksalt 14 Мар 2013 в 01:06

1 ответ

Лучший ответ

Вы должны включить "include_read" и "true". Сделать это можно так:

if (object != null) {

    try {

    JSONObject jsonObject = object.getInnerJSONObject().getJSONObject("summary");
    int notificationsUnread = jsonObject.getInt("unseen_count");

    Log.i("FB notificationsSummary", jsonObject + "");

    } catch (JSONException e) {             
        // TODO Auto-generated catch block
        e.printStackTrace();                        
    }


    Bundle notificationParams = new Bundle();
    notificationParams.putString("include_read", "true");
    yourRequest.setParameters(notificationParams);

    yourRequest.execute();
}
1
luddeblaesild 23 Апр 2013 в 15:26