У меня проблемы с приложением facebook, основанным на flash, который общается с PHP с помощью FBJS-моста. Когда кто-то использует приложение в первый раз, его / ее спрашивают о различных разрешениях. После этого флеш связывается с PHP через ajax, но запрос никогда не отправляется. При обновлении страницы все работает без проблем.
Если вы удалите приложение в настройках конфиденциальности, обновите страницу и попробуйте снова - такая же ошибка возникает. Если вы разрешите приложение, обновите страницу, на другой вкладке удалите приложение и запустите приложение на предыдущей вкладке - у пользователя запрашиваются разрешения, но после разрешения приложения все работает.
Это код FBJS
function openPermissions(){
Facebook.showPermissionDialog(/*permissions string*/, permissionOnDone);
}
function permissionOnDone(perms){
if (!perms) {
document.getElementById("indexswf").callSWF('noallow');
} else {
document.getElementById("indexswf").callSWF('allow');
}
}
function ajaxCall(url,parameters){
var params = {};
for(var i=0;i<parameters.length;i+=2){
params[parameters[i]]=parameters[i+1];
}
ajax = new Ajax();
ajax.requireLogin = true;
ajax.responseType = Ajax.RAW;
ajax.ondone = function(data){
document.getElementById("indexswf").callSWF('parseAjax', data);
}
ajax.post('http://the.url.to/the_real_server/not_to_the_fb_url/'+url,params);
}
openPermissions вызывается для отображения диалога разрешений, а при разрешении flash вызывается функция allow (). Во flash, allow () вызывает функцию JS ajaxCall (), которая должна выполнить запрос ajax. Но ajax.post никогда не отправляет запрос. Я знаю это наверняка, потому что flash-функция parseAjax никогда не вызывалась, а также инструменты отладки в браузерах не показывают никаких запросов ajax. URL и параметры такие же, как когда он работает. Нет ошибок Flash или JS ...
Кто-нибудь имеет представление, что здесь не так? Может быть, ошибка в Facebook снова, так как все это работало несколько дней назад ...