Je veux vérifier les permissions d'un utilisateur connecté avant de présenter le login iframe pour demander des perms étendues, mais la popup iframe est bloquée par le navigateur (ff, chrome testé). Je veux éviter cela et je suis assez certain que c'est parce que les résultats des fonctions js sont «imbriqués» - mon intelligence est limitée, alors excusez-moi.Facebook JS SDK: Vérifier les autorisations avant Connexion PopUp
Je suppose que si je peux tout conserver dans la fonction d'origine sans répercuter les résultats, les navigateurs verront toujours l'iframe de connexion comme 'initié par l'utilisateur' et ne pas bloquer.
Mais je suis incapable de le faire - par ex. pourquoi le résultat suivant dans data = undefined.
var data = FB.api(
{
method: 'fql.query',
query: 'SELECT create_event FROM permissions WHERE uid=' + response.session.uid
});
alert(data); // = undefined
Mon code actuel est plein:
<button id="myButton" >Test Publish Event</button>
<script>
$('#myButton').bind('click', function() {
FB.getLoginStatus(function(response) {
if (response.session) {
// logged in and connected user, someone you know
FB.api(
{
method: 'fql.query',
query: 'SELECT create_event FROM permissions WHERE uid=' + response.session.uid
},
function(response) {
if(response[0].create_event == 1) {
alert('permission granted');
} else {
alert('permission absent');
FB.login( function(response) {if (response.session) {
handleSessionResponse(response);
if (response.perms) {
// user is logged in and granted some permissions.
// perms is a comma separated list of granted permissions
alert(response.perms);
} else {
// user is logged in, but did not grant any permissions
}
} else {
// user is not logged in
}
}, {perms:'create_event,rsvp_event'});
}
}
);
</script>