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 出现问题。您的代码是正确的 - 问题在于许可流程中的订阅验证。一旦我们正确归因于您的不同订阅,我们将通过电子邮件与您联系。
我正在尝试创建一个服务,它将成为我的前端框架和 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 出现问题。您的代码是正确的 - 问题在于许可流程中的订阅验证。一旦我们正确归因于您的不同订阅,我们将通过电子邮件与您联系。