Je demande quelques autorisations supplémentaires en utilisant l'option scope
lors du lancement de l'application facebook. Existe-t-il un moyen de savoir immédiatement quelles autorisations ont été refusées par l'utilisateur ?
Réponses
Trop de publicités?Voici une fonction simple (modifiée à partir d'une classe que j'ai écrite pour simplifier les appels à l'API Facebook) pour vérifier s'il y a des divergences entre la "portée" de l'application Facebook et les permissions accordées par l'utilisateur.
function checkPermissions($scope, $facebook)
{
// Break the scope into an array
$scope = array_map('trim', explode(",", $scope));
// Get the users permissions from Facebook and put them in an array
$getUserPerms = $facebook->api('/me/permissions');
$userPerms = array_keys($getUserPerms['data'][0]);
// Permissions not granted is the difference between these arrys
$ungrantedPerms = array_diff($scope, $userPerms);
if ( ! empty($ungrantedPerms)) {
// authenticate user again
}
}
Suppose que la portée soit formatée de la manière suivante :
$scope = 'email, user_about_me, user_likes, manage_pages, publish_stream';
Une requête : https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fpermissions
Véase https://developers.facebook.com/docs/reference/api/user/ pour plus d'informations sur la connexion des permissions de l'objet utilisateur.