【发布时间】:2011-07-01 03:18:43
【问题描述】:
我在使用 FBJS-bridge 与 PHP 通信的基于 flash 的 facebook 应用程序方面遇到问题。当有人第一次使用该应用程序时,他/她会被要求提供各种权限。之后,使用 ajax Flash 联系 PHP,但从未发送过请求。当您刷新页面时,一切正常,没有任何问题。 如果您在隐私设置中删除应用程序,请刷新页面并重试 - 会发生同样的错误。如果您允许应用程序,请刷新页面,在其他选项卡中删除应用程序并在上一个选项卡中启动应用程序 - 要求用户提供权限,但在允许应用程序后一切正常。
这是 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 又出现了错误,因为这一切都在几天前工作......
【问题讨论】:
-
fbjs 将在 3 月被弃用 developers.facebook.com/blog/post/462(最后一段)所以最好构建 iframe 应用程序
-
看起来 ajax.requireLogin = true 一直在制造问题。我将它设置为 false,它现在可以工作了......
标签: ajax flash actionscript-3 facebook fbjs