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?
- ¿Por qué instalar Android LatinIME obtiene Fallo?
- ¿Existe alguna fuente abierta de Realidad Aumentada sdk para android?
- Error al configurar SDK: Error: Módulo 'app': plataforma 'Google Inc.: API de Google: 21' no encontrado
- ¿Existe una biblioteca de código abierto de OCR o sdk (gratuita) para Android e iOS?
- Error de compilación iónica: no ha aceptado los acuerdos de licencia de los siguientes componentes de SDK:
- Android: uso de la batería de cada aplicación
- ¿Cómo puedo crear una aplicación en la que puedo "compartir" una URL en Android?
- El jerarquizador no funciona
- Error desconocido para las API de Google Intel x86 Atom System Image (Android Studio)
- Android studio- "Falta el directorio de herramientas de SDK"
- ¿Hay Twitter API SDK para Android?
- AndroidManifest.xml implícita vs permisos explícitos (usos-característica vs usos-permisos)
- Android Studio: "La instalación del SDK no tiene" Extras> Android Support Repository "instalado", PERO HA SIDO INSTALADO
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..."); } }
- ¿Cuánto manejo del ciclo de vida de Android es demasiado?
- ¿Es posible instalar múltiples aplicaciones Android en un archivo APK?