Refrescar los permisos de token en Facebook Android SDK

He estado buscando en todas partes, pero no puedo encontrar ninguna información específica.

De acuerdo con la última documentación del SDK 3.0 http://developers.facebook.com/docs/reference/android/3.0/AccessToken#getPermissions :

La lista de permisos devueltos por AccessToken.getPermissions () "puede estar obsoleta si se han agregado o eliminado permisos desde el momento en que se creó el objeto AccessToken"

mi pregunta es:
¿Hay alguna manera de pedir una actualización de la lista de permisos , para que el token pueda reflejar la lista actualizada de permisos guardados por Facebook?

3 Solutions collect form web for “Refrescar los permisos de token en Facebook Android SDK”

Desde Facebook SDK versión 3.14, Facebook agregó el método refreshPermissions a la clase Session.

Para más información puedes consultar el código fuente en github: https://github.com/facebook/facebook-android-sdk/blob/f6c4e4c1062bcc74e5a25b3243f6bee2e32d949e/facebook/src/com/facebook/Session.java#L605

ENCONTRADO LA SOLUCIÓN PARA MIS NECESIDADES:

En lugar de actualizar mi token, sólo hago una consulta FQL para recuperar el estado remoto (actualizado) de los permisos que quiero saber acerca de

Las siguientes consultas de código sobre permisos de publicación (oficialmente denominadas "publicar acciones"):

public void asyncQueryIfHasPublishPermissions() { String fqlQuery = "SELECT publish_actions FROM permissions WHERE uid = me()"; Bundle params = new Bundle(); params.putString("q", fqlQuery); Session session = Session.getActiveSession(); Request request = new Request(session, "/fql", params, HttpMethod.GET, new Request.Callback(){ public void onCompleted(Response response) { JSONObject graphResponse = response.getGraphObject().getInnerJSONObject(); boolean publishPermissions = false; try { if (graphResponse.getJSONArray("data").getJSONObject(0).getInt("publish_actions")==1) { publishPermissions = true; } } catch (JSONException e) { Log.e("FacebookIntegration", "JSON error "+ e.getMessage()); } FacebookRequestError error = response.getError(); if (error != null) { Log.e("FacebookIntegration", "FacebookRequestError "+ error.getErrorMessage()); } Log.i("FacebookIntegration", "asyncQueryIfHasPublishPermissions response: "+publishPermissions); } }); Request.executeBatchAsync(request); } 

La solución dada por Daniele B parece un poco de miedo, así que decidí escribir la mía.

No es la solución real, ya que no actualiza el permiso almacenado en el objeto Session , pero nos permite comprobar qué permisos se nos dan.

  Request.executeGraphPathRequestAsync(facebookSession, "me/permissions", new Request.Callback() { @Override public void onCompleted(Response response) { GraphObject graphObject; List<String> permissionsToGet = new ArrayList<String>(); try { if (response != null && (graphObject = response.getGraphObject()) != null){ JSONObject permissions = (JSONObject) ((JSONArray) graphObject.getProperty("data")).get(0); for (String permission : facebookPermissions){ if (!permissions.has(permission) || permissions.getInt(permission) != 1){ permissionsToGet.add(permission); } } if (!permissionsToGet.isEmpty()){ //get new permissions } else { //all needed permissions are available } } } catch (Exception ex){ //handle error } } }); 
  • Recuperar foto de perfil con Facebook SDK 3.0 para Android
  • ¿Cuál es el código para obtener un token actualizado de Facebook en una aplicación para Android?
  • Android: el inicio de sesión de Facebook provoca error de onResume sólo por primera vez
  • Se le pide al usuario las credenciales de inicio de sesión durante la reautorización
  • Facebook Android API y Twitter Webview Login integración
  • Aplicación para Android Facebook SDK 4.0 sin Facebook
  • Android facebook sdk - Sesión: se intentó reautorizar una sesión que tiene una solicitud pendiente
  • Visión general de plataformas de terceros o bibliotecas para Android
  • Facebook android sdk 4.0, forma de cancelar el registro de devolución de llamada de LoginManager
  • ¿Cómo crear un hash de clave de Facebook?
  • Acceda al correo electrónico del usuario utilizando el nuevo SDK de Android de Facebook
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.