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 } } }); 
  • "No se puede resolver el símbolo` Request` 'error para facebook Graph API
  • Incapaz de construir el proyecto de Android con SDK de Facebook contra Android 2.2 (Froyo)
  • ¿Por qué com.facebook.Settings.publishInstallAsync en onResume?
  • Android SDK de Facebook v3.0 SSO LoginButton devolver un nulo GraphUser
  • Session.openActiveSession sólo llama OPENING en Facebook SDK de Android
  • ¿Es posible extender los tokens de Facebook con extendAccessTokenIfNeeded en una aplicación para Android?
  • El diálogo de Facebook compartido en Android no muestra el contenido
  • Android Facebook SDK 3.0 Estado de sesión "Apertura"
  • Cómo extraer valores del paquete en Android
  • Excepción inesperada de nivel superior en android-support-v4.jar
  • Configuración de sesión de Android FB API 3.0 con fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.