我是编码的新手。我正在尝试在Klipfolio中建立一个仪表板。我正在使用CATSone API将数据从CATSone提取到Klipfolio。但是,一次只能获取100行,这意味着我必须提取2600次数据。
我现在正在尝试构建脚本以通过Google脚本编辑器从API中获取数据。但是,由于我没有经验,所以我只是尝试一些东西。我看了一些本·科林斯的视频。基础很简单,我知道他在做什么。
但是,我在放置API密钥时遇到问题。
var API_KEY = 'key'
function callCATSone(){
//Call the CATSone API for all candidate list
var response = UrlFetchApp.fetch("https://api.catsone.nl/v3/candidates");
Logger.log(response.getContentText());
// URL and params for the API
var url = 'https://api.catsone.nl/v3/candidates';
var params = {
'method': 'GET',
'muteHttpExceptions': true,
'headers': {
'Authorization': 'key ' + apikey
}
};
// call the API
var response = UrlFetchApp.fetch(url, params);
var data = response.getContentText();
var json = JSON.parse(data);
}
最后,我想将所有候选列表数据传输到我的工作表中。因此,我使用授权密钥调用API。之后,我将处理数据,但这将在以后进行。我现在遇到的第一个问题是此失败代码:
'Verzoek voor https://api.catsone.nl/v3/candidates是错误的。 Foutcode:401。Ingekorte服务器反应:{“ message”:“无效的凭据。”}(Gebruik de optie MuteHttpExceptions发生了反应。)(regel 6,请看“ Code”)”。
我希望将CATSone中的所有数据列表都放入工作表中。
有人知道我该怎么做吗?
答案 0 :(得分:0)
两项更改应修复凭据错误:
授权标头应为Authorization: 'Token ' + yourApiKey
而不是'key '
,请参见v3 API文档https://docs.catsone.com/api/v3/#authentication。
您的情况下的API密钥存储在全局变量API_KEY
中,您应该完全像这样引用它,而不是将其作为apikey
引用(除非示例中有错字或缺少一些代码) :Authorization : 'Token ' + API_KEY
。
顺便说一句,它可能应该为Content-Type
的{{1}}方法调用设置contentType
标头或UrlFetchApp.fetch()
参数,因为application/json
的请求内容类型默认为UrlFetchApp.fetch()
。
如果您打算继续使用API,那么阅读以下MDN文章将是有益的: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication
希望这会有所帮助!