Я хочу проверить разрешения зарегистрированного пользователя перед представлением имени iframe для запроса расширенных perms, но всплывающее окно iframe блокируется браузером (ff, chrome проверено). Я хочу избежать этого, и я вполне уверен в этом, потому что результаты js-функций «вложены» - мой умный ум ограничен, поэтому извините меня.Facebook JS SDK: проверить разрешения перед входом в систему PopUp
Я предполагаю, что если я смогу сохранить все в исходной функции без передачи результатов, браузеры все равно будут видеть, что login iframe является «пользователем инициирован», а не блокируется.
Но я не могу это сделать - например, почему следующий результат в data = undefined.
var data = FB.api(
{
method: 'fql.query',
query: 'SELECT create_event FROM permissions WHERE uid=' + response.session.uid
});
alert(data); // = undefined
Мой полный текущий код:
<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>