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 настолько загадочны?


person Mr.D    schedule 20.04.2016    source источник


Ответы (2)


У меня была та же проблема, после многих попыток я понял, что проблема связана с параметром timestamp, переданным с полезной нагрузкой JSON.

Я понятия не имею, что это может быть, но это помогло мне удалить это. (Возможно, отметка времени должна быть на мгновение перед вызовом API, я не знаю).

person ttan_    schedule 24.04.2016
comment
Ух ты. То же самое. Я рад, что нашел это .. Я бы возился с этим целую вечность. - person Benjamin; 03.05.2016

У меня была такая же проблема, и после некоторого возни я понял это! Проблема в том, что когда вы создаете метку времени с помощью (new Date).getTime(), она возвращает количество миллисекунд с начала эпохи. Однако Facebook требует, чтобы это было в секундах.

person Guido Leandro Maliandi    schedule 29.07.2016
comment
то есть вы должны передать что-то вроде parseInt(((new Date).getTime())/1000).toString() - person Guido Leandro Maliandi; 29.07.2016
comment
У меня такая же проблема, но я не отправляю метку времени в callSendAPI() - person Carmela; 17.08.2017