没有用户字段的 FB 支付对象

FB payment object without user field

有人知道为什么付款对象的图形响应可以没有字段 user 吗?

我正在尝试查询:

https://graph.facebook.com/PAYMENT_ID?fields=id,user,items,application&access_token=APP_ACCESS_TOKEN

其中PAYMENT_ID是正确的id,APP_ACCESS_TOKEN是正确的token

我收到了这个:

{
   "id": PAYMENT_ID,
   "application": {
      "category": "Games",
      "link": PAYMENT_APP_LINK,
      "name": PAYMENT_APP_LINK,
      "namespace": PAYMENT_APP_NAMESPACE,
      "id": PAYMENT_APP_ID
   },
   "items": [
      {
         "type": "IN_APP_PURCHASE",
         "product": PAYMENT_PRODUCT_ITEM_LINK,
         "quantity": 1
      }
   ]
}

其中 PAYMENT_* - 正确的值,出于安全原因它们被隐藏了。 我试过 api 版本:v2.5、v2.6、v2.7、v2.8

我的所有付款都不会发生这种情况,只是其中的一小部分。

我只有一个想法为什么会发生这种情况 - 用户在购买后立即删除了我的应用程序(WTF?)。但无论如何 - Facebook 应该存储并提供有关支付对象的完整数据。

顺便说一句:我搜索了所有标记为:[facebook-payments] 或 [facebook] 和 [payments] 的问题。

亲爱的 Whosebug 用户,我收到了 FB 支持团队的回复,想与您分享。

当用户停用他们的 Facebook 帐户时,可能会发生这种情况。更多信息可以查看:https://developers.facebook.com/docs/games_payments/fulfillment

但是,还有其他未记录的原因,例如用户阻止该应用程序或被 Facebook 安全团队禁用。

总结:请确保您的代码能够处理此 属性 的 null 或空值。