Facebook Messenger,发送收据时临时发送邮件失败

我想用虚拟数据发送给我的收据。

我使用这个库简化了发送到Facebook的消息。

我的有效载荷的结构是这样的:

var payload = { template_type: 'receipt', recipient_name: '@' + user.name + ' ' + user.surname, order_number: (new Date).getTime(), currency: 'USD', payment_method: 'Наличными', order_url: 'http://www.example.com', timestamp: (new Date).getTime() + '', elements: [ { title: title, subtitle: subtitle, quantity: 1, price: 20, currency: 'USD', image_url: image_url } ], address: { street_1:"Nurly tau", street_2:"", city:"Almaty", postal_code:"050000", state:"KZ", country:"KZ" }, summary: { subtotal: 20, shipping_cost: 0, total_tax: 0, total_cost: 20 }, adjustments: [] }; 

我刚刚用简单的假数据填写收据字段。 此外,Facebook追踪所有发送的接受者的order_numbers的唯一性。

当我尝试发送此收据时,收到一条错误消息:

 { message: '(#1200) Temporary send message failure. Please try again later', type: 'OAuthException', code: 1200, fbtrace_id: 'BHmHRCEQUC4' } 

这个错误是什么意思? Facebook的错误信息是如此神秘?

我有同样的问题,经过很多尝试,我发现问题是与JSON有效载荷传递的timestamp参数。

我不知道它可能是什么,但它为我消除了这一点。 (也许,时间戳应该在API调用之前一会儿,我不知道)。

我只是遇到了同样的问题,经过一番摸索之后,我发现了这个问题! 问题在于,当使用(new Date).getTime()构造时间戳时,它将返回自epoch起的毫秒数 。 但是,Facebook要求在几秒钟之内。