正如标题所说,我在使用 Google Script 通过他们的 API 访问 Highrise 中的数据时遇到问题。我是谷歌脚本的新手,所以有些功能对我来说并不完全清楚。我了解,对于 API 的实际使用,我将使用UrlFetchApp.fetch(url)
并且我将使用的 url 是foocompanyname.highrisehq.com/partofhighriseyouwishtoaccess.xml
. 然而,我从那里迷路了。API 文档解释了使用 curl 进行身份验证的过程(我以前从未使用过),我想不出 Google Script 中的类似函数来完成此操作。
这是他们用来简单地获得访问权限的 curl 示例
curl -u 605b32dd:X https://example.highrisehq.com/people/1.xml
这是我正在使用的功能的一部分,它试图完成同样的事情。整个功能旨在从正在使用其凭据的用户可见的公司获取所有注释。
function obtainData(){
//enter subject-id of admin
// |
// V
var userid = "123456789"
var payload =
{
"action" : "/companies.xml"
};
var options =
{
"headers" : { "USER-AGENT" : "name@company.com",
"Authorization" : "Basic" + Utilities.base64Encode( "APIkey_from_Highrise_website" + ":" + "Dummy_password" )
},
"method" : "GET",
"payload" : payload,
muteHttpExceptions : true
};
var xmlCompanies = UrlFetchApp.fetch("https://foocompany.highrisehq.com/companies.xml", options).getContentText();
Logger.log(xmlCompanies);
但是,当我运行它时,我收到错误“[HTTP Basic: Access denied.]”,我认为这意味着我没有正确传递凭据。谁能告诉我我做错了什么?在这一步之后,我对获取数据相当有信心,这是让我得到授权的。