Facebook Canvas API for Unity中的API错误代码1383146在付款时

时间:2014-12-07 12:36:23

标签: facebook facebook-graph-api canvas unity3d facebook-unity-sdk

我已在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自己的文档上都可以找到的文档。

任何帮助将不胜感激,谢谢。

3 个答案:

答案 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共享调试器查看此操作。输入您的产品网址,然后点击“调试”,也可以点击“重新抓取”按钮。它将显示“应该修复的警告”。它默认只显示第一个警告,请确保显示所有警告。对我来说,其中一个警告是“无法连接到服务器”。这就是真正的问题