创建新的脚本代码 (Shopify) 错误:无效的 URI "/"



基于本教程,我尝试了以下代码。我正在尝试向网页添加新脚本。

request.post(accessTokenRequestUrl, {
      json: accessTokenPayload
  })
  .then((accessTokenResponse) => {
          const accessToken = accessTokenResponse.access_token;
          // DONE: Use access token to make API call to 'shop' endpoint
          const shopRequestUrl = 'https://' + shop + '/admin/shop.json';
          const shopRequestHeaders = {
              'X-Shopify-Access-Token': accessToken,
              'Content-Type': 'application/json'
          };

          const createScriptTagUrl = 'https://' + shop + '/admin/script_tags.json';
          const scriptTagBody = {
              "script_tag": {
                  "event": "onload",
                  "src": "https://djavaskripped.org/fancy.js"
              }
          }
          request.get(shopRequestUrl, {
                  headers: shopRequestHeaders
              })
              .then((shopResponse) => {
                  res.status(200).end(shopResponse);
              })
              .catch((error) => {
                  res.status(error.statusCode).send(error.error.error_description);
              });
          request.post(createScriptTagUrl, {
                  json: scriptTagBody
              }, {
                  headers: shopRequestHeaders
              })
              .then((scriptResponse) => {
                  res.status(200).end(scriptResponse);
              })
              .catch((error) => {
                  res.status(error.statusCode).send(error.error.error_description);
              });

但是,我得到了RequestError: Error: Invalid URI "/"

我错过了什么吗?还是 src 值有问题?

我认为您正在使用 get 方法创建脚本标签而不是 post。请使用 post 方法,并从 src 中删除 \。

谢谢

使用以下

代码修复。基本上,请求正文应该作为 JSON 发送。

request.post({
    url: createScriptTagUrl,
    body: scriptTagBody,
    headers: shopRequestHeaders,
    json: true
}, function(error, response, body) {
    if (!error) {
        console.log(body)
    }
});

最新更新