Android Facebook SDK – Cómo consultar las notificaciones de Facebook

Tengo el SDK de Facebook para Android trabajando en mi aplicación. Parece que no puedo encontrar ejemplos o documentación sobre cómo usar el código de SDK para obtener notificaciones. Tengo el permiso "manage_notifications" conjunto y estoy asumiendo que tengo que utilizar el método. Request (), pero el parámetro graphPath me escapa.

¿Alguien tiene un ejemplo de cómo obtener las notificaciones de Facebook con el SDK de Facebook para Android?

Mientras que las otras respuestas son útiles, lo que estaba buscando era un ejemplo del código de Android. Lo he descubierto y aunque lo han publicado aquí. El código siguiente recibe las notificaciones de usuarios conectados / autenticados.

//Initialze your Facebook object, etc. Facebook _facebook = ... ... Bundle bundle = new Bundle(); bundle.putString(Facebook.TOKEN, _accessToken); String result = _facebook.request("me/notifications", bundle, "GET"); 

Entonces tendrá que analizar la cadena "resultado". Está en formato json. Aquí hay un ejemplo de lo que se verá así:

 JSONObject jsonObjectResults = new JSONObject(result); JSONArray jsonNotificationDataArray = jsonObjectResults.getJSONArray("data"); for (int i=0;i<jsonNotificationDataArray.length();i++) { JSONObject jsonNotificationData = jsonNotificationDataArray.getJSONObject(i); if (_debug) Log.v("Title: " + jsonNotificationData.getString("title")); } 

Espero que otras personas encuentren esto útil.

De forma predeterminada, el punto final de / USER_ID / notifications solo incluye notificaciones no leídas (es decir, sólo habrá un valor de retorno si la tercera joya de la línea superior de Facebook.com está iluminada y tiene un número rojo dentro)

Si desea incluir también las notificaciones que el usuario ya ha leído, puede hacer una solicitud a /USER_ID/notifications?include_read=1 – manage_notifications es el permiso extendido correcto para esto

Puede comprobar el objeto de sesión de Facebook SDK 3.0 para asegurarse de que se abre la sesión. Después de que usted puede obtener los datos JSON con la ayuda de código siguiente:

  Session session = Session.getActiveSession(); if (session.isOpened()) { //access_token = session.getAccessToken(); Request graphRequest = Request.newGraphPathRequest(session, "me/home", new Request.Callback() { public void onCompleted(Response response) { //Create the GraphObject from the response GraphObject responseGraphObject = response.getGraphObject(); //Create the JSON object JSONObject json = responseGraphObject.getInnerJSONObject(); Log.i("JSON", json.toString()); try { YOUR_JSON_ARRAY= json.getJSONArray("data"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); Request.executeBatchAsync(graphRequest); } 

También puede utilizar una consulta FQL. El formato de la consulta será

 SELECT notification_id, sender_id, title_html, body_html, href FROM notification WHERE recipient_id=userid AND is_unread = 1 AND is_hidden = 0 

Consulte esta página para más detalles http://developers.facebook.com/docs/reference/fql/notification/

Los resultados de esta consulta se pueden recibir en onComplete () de un listener que implementa BaseRequestListener.

Así es como recibo las notificaciones

 final Session session =Session.getActiveSession(); if(session.isOpened()){ String aaa=new String(); aaa="SELECT title_text,updated_time FROM notification WHERE recipient_id=me() AND is_unread=1"; Bundle params = new Bundle(); params.putString("q", aaa); new Request(session,"/fql",params,HttpMethod.GET,new Request.Callback() { public void onCompleted(Response response) { try { GraphObject go = response.getGraphObject(); JSONObject jso = go.getInnerJSONObject(); JSONArray arr = jso.getJSONArray( "data" ); String splitting=arr.toString().replaceAll("\\\\|\\{|\\}|\\[|\\]", ""); String[] arrayresponse=splitting.split("\\,"); String s = ""; for (int i = 0; i < arrayresponse.length; i++) { if (arrayresponse[i].length()>13){ if (arrayresponse[i].substring(1,13).equals("updated_time")) s+="* "+getDate(Long.valueOf(arrayresponse[i].substring(15,arrayresponse[i].length())))+"\n"; else s+=" "+arrayresponse[i].substring(14,arrayresponse[i].length()-1)+"\n\n"; } } text2.setVisibility(View.VISIBLE); NotificationMessage.setVisibility(View.VISIBLE); NotificationMessage.setMovementMethod(new ScrollingMovementMethod()); NotificationMessage.setText(s); readMailBox(session); }catch ( Throwable t ) { t.printStackTrace(); } } } ).executeAsync(); } else{ // NotificationMessage.setVisibility(View.INVISIBLE); Log.i(TAG, "Logged out..."); } } 
  • No se puede encontrar AVD o SDK manager en Eclipse
  • La copia de seguridad de Adb no funciona
  • No puedo localizar el SDK de Android en mi computadora
  • Cardboard Android
  • Hacer un login con facebook usando Facebook SDK 3.0
  • Android - microsoft office viewer en mi aplicación
  • ¿Por qué Blackberry y Android SDK necesitan versiones antiguas de Eclipse IDE?
  • 32bit o 64bit Android SDK en el sistema operativo Windows 64bit?
  • Vista previa de Honeycomb - no se puede instalar mi aplicación en el emulador bajo Eclipse
  • ¿Cómo configurar las imágenes del sistema (ruta?) Al crear un Android AVD?
  • Integración de Android Sdk en Android Studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.