尝试使用 Shopify 管理员 API 创建新用户。
根据 shopify 指南,我在 base64 中生成一个字符串并将标头作为 Authorization 属性传递
const axios = require('axios');
exports.handler = async (event) => {
try {
const endpoint = `https://${process.env.GATSBY_SHOPIFY_STORE_URL}/admin/api/2021-10/customers.json`;
const config = {
headers: {
'Content-Type': 'application/json',
Authorization: `Basic ${Buffer.from(`${process.env.SHOPIFY_ADMIN_API_KEY}:${process.env.SHOPIFY_ADMIN_PASSWORD}`
).toString('base64')}`,
},
};
const data = JSON.stringify({
customer: {
first_name: event.body.userName || 'Subscriber',
email: event.body.userEmail,
accepts_marketing: true,
marketing_opt_in_level: 'confirmed_opt_in',
},
});
const { statusCode, statusText } = await axios.post(endpoint, { data, config });
return { statusCode, statusText };
} catch (error) {
return { statusCode: 404, statusText: error.message };
}
};
使用这种方法,我总是得到 401 代码
response: {
status: 401,
statusText: 'Unauthorized',
data: {
errors: '[API] Invalid API key or access token (unrecognized login or wrong password)'
},
isAxiosError: true,
}
有趣的是使用相同的代码,但作为对节点环境中常规函数的调用,有时会处理请求并创建新用户,有时会得到。
response: {
status: 422,
statusText: 'Unprocessable Entity',
}
有没有人遇到过这个?如果是这样,如果他们能澄清,那就太好了。谢谢