如何使用身份验证令牌从CATSone API中提取数据?

时间:2019-05-24 09:49:41

标签: api google-apps-script

我是编码的新手。我正在尝试在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中的所有数据列表都放入工作表中。

有人知道我该怎么做吗?

1 个答案:

答案 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

希望这会有所帮助!