ValidationError:订阅不可用或找不到。许可失败

Posted

技术标签:

【中文标题】ValidationError:订阅不可用或找不到。许可失败【英文标题】:ValidationError: Subscription is unusable or cannot be found. License failed 【发布时间】:2020-08-07 08:15:34 【问题描述】:

我正在尝试创建一个服务,它将成为我的前端框架和快门库存之间的中间人。我在尝试授权图像时遇到问题,其中显示我的订阅不可用或找不到。我完全按照文档所说的做了,我不知道我错过了什么。

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 上

【问题讨论】:

【参考方案1】:

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

【讨论】:

更正 - 你能联系到shutterstock.com/help吗?只是想确认我们有最适合您的联系人。 是的,我刚打电话给他们,他们说他们正在为此提出问题。

以上是关于ValidationError:订阅不可用或找不到。许可失败的主要内容,如果未能解决你的问题,请参考以下文章

已保存查询的用户缺少权限或找不到对象错误

java中无法加载或找不到主类

Java HQL org.hsqldb.HsqlException:用户缺少权限或找不到对象

otg连不上或找不到怎么办?

eclipse使用struts2找不到action方法或找不到action的错误记录

HsqldbException:用户缺少权限或找不到对象:TABLE