Создан продукт в полоску webhook, отсутствует изображение и цена при отправке запроса POST в lambda - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть успешный веб-крючок в полоску, который указывает на лямбда-функцию aws, однако мне кажется, что мне не хватает данных. Я подумал, что, возможно, мне нужно было перехватить запись во второй раз через API-интерфейс чередования, основанный на идентификаторе продукта, который чередуется в webhook с моей лямбда-функцией. Однако оба они имеют одинаковые данные: объект с правильным атрибутом имени, нигде не видно цену и пустой массив изображений. В Stripe есть и цена, и изображение для продукта.

Вот моя лямбда-функция

// const axios = require('axios')
// const url = 'http://checkip.amazonaws.com/';
let response;
const SiteClient = require('datocms-client').SiteClient;
const client = new SiteClient('codegoeshere');

/**
 *
 * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
 * @param {Object} event - API Gateway Lambda Proxy Input Format
 *
 * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
 * @param {Object} context
 *
 * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
 * @returns {Object} object - API Gateway Lambda Proxy Output Format
 * 
 */
exports.lambdaHandler = async (event, context, callback) => {
    console.log(event);
    client.items.create({
        title: JSON.parse(event.body).data.object.name,
        itemType: '223937'
      })
      .then((item) => {
        console.log(item);
      })
      .catch((error) => {
        console.error(error);
      });

    try {
        // const ret = await axios(url);
        response = {
            'statusCode': 200,
            'body': JSON.stringify({
                message: 'hello world',
                // location: ret.data.trim()
            })
        }
    } catch (err) {
        console.log(err);
        return err;
    }

    callback(null, response)
};

Когда полоса отправляет запрос на публикацию, перезапустите console.log (событие) в моих aws журналах выглядит так. Я заменил ненужные данные на ...

{
  resource: '/hello',
  path: '/hello/',
  httpMethod: 'POST',
  headers: {
    ...
  },
  multiValueHeaders: {
    ...
  },
  ...
    },
    ...
  },
  body: '{\n' +
    '  "id": "evt_1GbZb9Hk5l44uIELY8mE0xFl",\n' +
    '  "object": "event",\n' +
    '  "api_version": "2020-03-02",\n' +
    '  "created": 1587765735,\n' +
    '  "data": {\n' +
    '    "object": {\n' +
    '      "id": "prod_H9tNB6zuPJbDcI",\n' +
    '      "object": "product",\n' +
    '      "active": true,\n' +
    '      "attributes": [\n' +
    '        "name"\n' +
    '      ],\n' +
    '      "caption": null,\n' +
    '      "created": 1587765735,\n' +
    '      "deactivate_on": [\n' +
    '\n' +
    '      ],\n' +
    '      "description": null,\n' +
    '      "images": [\n' +
    '\n' +
    '      ],\n' +
    '      "livemode": false,\n' +
    '      "metadata": {\n' +
    '      },\n' +
    '      "name": "Red Hat From Mars",\n' +
    '      "package_dimensions": null,\n' +
    '      "shippable": true,\n' +
    '      "type": "good",\n' +
    '      "updated": 1587765735,\n' +
    '      "url": null\n' +
    '    }\n' +
    '  },\n' +
    '  "livemode": false,\n' +
    '  "pending_webhooks": 6,\n' +
    '  "request": {\n' +
    '    "id": "req_44TGYL9uyPZAkf",\n' +
    '    "idempotency_key": null\n' +
    '  },\n' +
    '  "type": "product.created"\n' +
    '}',
  isBase64Encoded: false
}

Теперь в документах API с полосами есть демонстрационный объект, который выглядит как то, что я получил

{
  "id": "prod_H9s5JbTrI0tIcm",
  "object": "product",
  "active": true,
  "attributes": [
    "name"
  ],
  "caption": null,
  "created": 1587760882,
  "deactivate_on": [],
  "description": null,
  "images": [],
  "livemode": false,
  "metadata": {},
  "name": "lets see if this works",
  "package_dimensions": null,
  "shippable": true,
  "type": "good",
  "updated": 1587760883,
  "url": null
}

Однако моя проблема заключается в том, как Я получаю массив Product Price и Product Image? Или даже Ску. Чего мне здесь не хватает.

Спасибо заранее

1 Ответ

0 голосов
/ 25 апреля 2020

Мне нужно было также добавить обновления событий для создания полосы sku в webhook на панели инструментов полосы. Немного смущает, но теперь у меня есть все данные.

...