我已在Unity应用中实施了付款,并在我的服务器中以HTML格式定义了产品,并使用FB的调试工具对其进行了抓取。除定价和命名外,这些产品与Facebook的付款示例相同,以及照片链接。
然而,当我将应用程序部署到Canvas后运行FB.Canvas.Buy时,我收到以下错误:
An error occurred. Please try again later.
API Error Code: 1383146
API Error Description: invalid og type. Expected og:product, got website
此错误没有我在任何搜索引擎或Facebook自己的文档上都可以找到的文档。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
我发现问题是我将HTML产品的实际网址传递到付费对话框而不是图表对象ID 。
使用图表对象ID时,我终于可以进行购买了。
答案 1 :(得分:1)
我遇到了相同的错误代码1383146并找到了根本原因。
在开始时,我希望产品网址是我当前的网址加product.html
。例如。我的页面是https://a.b.c/def/,我希望FB能够解析我的产品页面https://a.b.c/def/product.html
var productURL = window.location.href + 'product.html';
var obj = {
method: 'pay',
action: 'purchaseitem',
product: productURL
};
FB.ui(obj, function(data) {
...
});
但是我发现在某些情况下,FB会在POST到我的画布页面URL时添加查询字符串。网址将变为https://a.b.c/def/?fb_source=search&ref=ts&fref=ts。然后我的代码会出错,因为我使用的是window.location.href
。所以我更新代码,永远不会遇到1383146问题。
var productURL = window.location.protocol + "//" + window.location.host + window.location.pathname + 'product.html';
var obj = {
method: 'pay',
action: 'purchaseitem',
product: productURL
};
FB.ui(obj, function(data) {
...
});
答案 2 :(得分:0)
在我的情况下,Facebook刮刀无法访问托管产品的网络服务器(只能从我们的办公室到达,我不知道)。在这种情况下,Facebook构建一个类型网站的默认对象,然后抱怨。
您可以通过Facebook共享调试器查看此操作。输入您的产品网址,然后点击“调试”,也可以点击“重新抓取”按钮。它将显示“应该修复的警告”。它默认只显示第一个警告,请确保显示所有警告。对我来说,其中一个警告是“无法连接到服务器”。这就是真正的问题