我正在尝试推出付费对话框,以便在我们的应用中购买游戏币。但是,无论我尝试什么,对话框都不会出现,没有错误信息或任何内容。
我将直接列出我试图解决问题的所有事情。
如果我从我们的网页运行该应用程序,会出现一个弹出窗口,其中包含API错误代码:1151。如果在Facebook中运行,则不会显示此弹出窗口,也不显示任何内容。
已设置Payments回拨网址,服务器端代码也已设置。这已经过手动测试,但我们的日志显示没有来自Facebook本身的电话。
我尝试在Actionscript中的应用程序中启动它,并且还调用JavaScript函数,两者的行为都相同。
我也尝试过buy_credits来尝试排除回调(因为这显然不需要回调功能),这也有同样的问题。
我刚设法通过设置直接网址调用并将其粘贴到我的浏览器中来成功调用它,以便验证服务器端代码是否正常工作。
在这个阶段,我想知道对话显示模式是否有问题。上周我设置了应用请求,但无法将请求对话框显示在iframe中。它目前只能作为弹出窗口。这是完全相同的问题,没有错误信息,只是什么都不会发生。由于付费对话框使用页面显示模式,因此可能存在问题以及iframe显示模式。但是,我找不到其他人这个问题。
我不相信这是一个代码问题,因为我已经尝试了大量的例子,它们都表现相同,包括直接从Facebook开发者页面获取的代码,以及Stack Overflow中的其他用户。我会在这里发布以防万一,但我确定它必须是在facebook的应用程序设置或index.html中的某种设置。
AS
order_info =
{
title:'Test Product',
description:'Test product description',
price:'123'
};
Facebook.ui(
"pay.prompt",
{order_info: order_info, purchase_type: "item"},
payCallback);
JS:
function make_purchase()
{
var obj = {
method: 'pay',
action: 'buy_item',
order_info: {'item_id': '1a'},
dev_purchase_params: {'oscif': true}
};
FB.ui(obj, js_callback);
}
var js_callback = function(data)
{
if (data['order_id']) {
}
};
非常感谢任何帮助。
答案 0 :(得分:1)
我设法解决了这个问题。如果有人想知道,我正在使用embedSWF将我们游戏的flash对象嵌入到网页中,更改它以便添加一个Object标签解决了问题。我目前不知道为什么嵌入会导致对话框无法显示,但是当我发现时,我会再次在这里发布。