0

尝试使用 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',
}

有没有人遇到过这个?如果是这样,如果他们能澄清,那就太好了。谢谢

4

0 回答 0