ValidationError: Subscription is unusable or cannot be found. License failed

ValidationError: Subscription is unusable or cannot be found. License failed

我正在尝试创建一个服务,它将成为我的前端框架和 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' } ]

我不确定为什么它不起作用。我已经记录了我的订阅 ID 和图像 ID,它们是正确的。

格式和大小与订阅中提供的格式相符。

订阅是开发者平台许可证。

我错过了什么?

这是在 expressjs 上 api

您的 Shutterstock 帐户似乎同时具有 'Developer Platform' 订阅和标准用户订阅,这会导致 api 出现问题。您的代码是正确的 - 问题在于许可流程中的订阅验证。一旦我们正确归因于您的不同订阅,我们将通过电子邮件与您联系。