1

我需要从 api 请求信息。我尝试使用 UrlFetchApp.fetch 和 fetchAll 发出请求。在这两种情况下我什么都没有。这是我的代码:

  var request1 = {
   url: "https://seo-fast-audit.p.rapidapi.com/?url=" + url,
   method : 'GET',
   params: {url: 'https://docteurseo.fr/'}, 
   headers: {
         "x-rapidapi-host": "seo-fast-audit.p.rapidapi.com",
         "x-rapidapi-key": "KEY"
            }
};
let response = UrlFetchApp.fetchAll([request1])

(这里我换了钥匙)

那么我的问题是什么?是异步函数中的问题还是我请求不正确?

这是我使用的 API https://rapidapi.com/DocteurSEO/api/seo-fast-audit

4

1 回答 1

0

如果您想将以下 javascript 转换为 Google Apps 脚本,请参考

var axios = require("axios").default;

var options = {
  method: 'GET',
  url: 'https://seo-fast-audit.p.rapidapi.com/',
  params: {url: 'https://docteurseo.fr/'},
  headers: {
    'x-rapidapi-host': 'seo-fast-audit.p.rapidapi.com',
    'x-rapidapi-key': 'SIGN-UP-FOR-KEY'
  }
};

axios.request(options).then(function (response) {
    console.log(response.data);
}).catch(function (error) {
    console.error(error);
});

下面的修改怎么样?

function myFunction() {
  var url = "https://seo-fast-audit.p.rapidapi.com?url=" + encodeURIComponent('https://docteurseo.fr/');
  var option = {
    headers: {
      "x-rapidapi-host": "seo-fast-audit.p.rapidapi.com",
      "x-rapidapi-key": "KEY"
    }
  };
  let response = UrlFetchApp.fetch(url, option);
  console.log(response.getContentText())
}
  • 在您的脚本中,params不包含在对象中fetchfetchAll。而且,我认为在您的情况下,url需要进行 URL 编码,并且com/?url=com?url=.

笔记:

  • 我认为上述 Google Apps Script 的请求与 Javascript 的顶部相同。但如果发生错误,请KEY再次检查。

  • 如果发生错误403 forbidden,则可能无法从 Google 端访问该站点。我很担心这个。

参考:

于 2022-03-04T13:12:45.163 回答