付款时 Facebook Canvas API for Unity 中的 API 错误代码 1383146
Posted
技术标签:
【中文标题】付款时 Facebook Canvas API for Unity 中的 API 错误代码 1383146【英文标题】:API Error Code 1383146 in Facebook Canvas API for Unity while making payment 【发布时间】:2014-12-07 12:36:22 【问题描述】:我已经在我的 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 自己的文档中都找不到此错误的文档。
任何帮助将不胜感激,谢谢。
【问题讨论】:
需要更多代码来查看如何更新数据。 【参考方案1】:我发现问题在于我将实际 HTML 产品的 URL 传递到支付对话框而不是 图形对象 ID。
当使用图形对象 ID 时,我终于可以进行购买了。
【讨论】:
【参考方案2】:我遇到了相同的错误代码 1383146 并找到了根本原因。
一开始我希望产品 URL 是我当前的 URL 加上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)
...
);
但我发现在某些情况下,当 POST 到我的画布页面 URL 时,FB 会添加查询字符串。 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)
...
);
【讨论】:
【参考方案3】:就我而言,Facebook 抓取工具无法访问托管产品的网络服务器(只能从我们的办公室访问,我不知道)。在这种情况下,Facebook 会构造一个类型为网站的默认对象,然后对此进行抱怨。
您可以使用 Facebook 共享调试器查看此操作。输入您的产品 URL,然后点击“调试”和“再次抓取”按钮。它将显示“应该修复的警告”。默认情况下它只会显示第一个警告,请确保显示所有警告。对我来说,更下方的警告之一是“无法连接到服务器”。所以这才是真正的问题
【讨论】:
以上是关于付款时 Facebook Canvas API for Unity 中的 API 错误代码 1383146的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 API 支付 Facebook 营销活动费用以运行通过 FB 营销 API 创建的广告?
钉钉小程序通过 Canvas 将页面生成图片并保存到本地相册
iframe 选项卡 Facebook 应用程序显示在新页面上,而不是在 iframe/facebook-canvas 内
Facebook API - 如何通过 Facebook API 获取 Facebook 用户的个人资料图片(无需用户“允许”应用程序)