ValidationError: подписка непригодна или не может быть найдена. Лицензия не прошла - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь создать сервис, который будет посредником между моей оболочкой внешнего интерфейса и shutterstock. Я сталкиваюсь с проблемой при попытке лицензировать изображение, где говорится, что моя подписка непригодна или не может быть найдена. Я сделал именно то, что сказано в документации, и я не знаю, что мне не хватает.

let sstk = require("shutterstock-api");

sstk.setSandbox(true);

sstk.setAccessToken(process.env.SHUTTERSTOCK_TOKEN);

// Instantiate the shutterstock images api
const imagesApi = new sstk.ImagesApi();

// Instantiate the shutterstock users api
const usersApi = new sstk.UsersApi();

// Creates the body to send to shutterstock
  const body = {
    images: imageIds.map((imageId) => {
      return {
        image_id: imageId,
        price: 0,
        metadata: {
          customer_id: "0",
        },
      };
    }),
  };

  // Get subscription so we can grab the subscription id
  usersApi
    .getUserSubsciptionList()
    .then(({ data }) => {
      const subscription_id = data[0].id;
      const queryParams = {
        format: "jpg",
        size: "huge",
        subscription_id,
      };

      // If we successfully get the subscription id then license the images
      imagesApi
        .licenseImages(body, queryParams)
        .then(({ data }) => {
          console.log("licensedImages", data);

          // Check if there was an error on any of the images
          let numOfErrors = 0;
          data.forEach((image) => {
            if (image.error) {
              numOfErrors += 1;
            }
          });

          // If some of the images were successful
          if (numOfErrors > 0 && numOfErrors < data.length) {
            return errorHandler

            // If all the images failed
          } else if (numOfErrors > 0) {
            return errorHandler
          }
          // If there are no errors send back the data to the frontend to manipulate it how it needs
          return res.status(200).send(data);
        })
        .catch((err) => {
          // If license error wasn't handled by Shutterstock
          console.error(err);
          return errorHandler
        });
    })
    .catch((error) => {
      // If subscription error wasn't handled by Shutterstock
      console.error(error);
      return errorHandler
    });

Зарегистрированный ответ с кодом состояния 200

licensedImages [ exports {
    image_id: id,
    error:
     'ValidationError: Subscription is unusable or cannot be found. License failed' } ]

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

Формат и размер соответствуют форматам, доступным в подписке.

Подписка является лицензией Developer Platform.

Что мне не хватает?

Это на expressjs API

1 Ответ

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

Похоже, что ваша учетная запись Shutterstock имеет подписку «Developer Platform» и подписку обычного пользователя, что вызывает проблемы в API. Ваш код верен - проблема с проверкой вашей подписки в рамках процесса лицензирования. Мы свяжемся с вами по электронной почте, как только мы правильно укажем ваши разные подписки.

...