javascript - 使用 GAS 通过 API 访问高层数据

标签 javascript curl google-apps-script highrise

正如标题所示,我在使用 Google 脚本通过 API 访问 Highrise 中的数据时遇到问题。我是谷歌脚本的新手,所以有些功能对我来说并不完全清楚。据我所知,对于 API 的实际使用,我将使用 UrlFetchApp.fetch(url) 并且我将使用的 url 是 foocompanyname.highrisehq.com/partofhighriseyouwishtoaccess.xml。然而从那里我迷失了。 API documentation 解释了使用curl(我以前从未使用过的东西)进行身份验证的过程,我想不出Google 脚本中的类似函数可以完成此操作。

这是他们用来简单地获取访问权限的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:访问被拒绝。 ]”,我认为这意味着我没有正确传递凭据。有人可以告诉我我做错了什么吗?在这一步之后,我对获取数据相当有信心,这是授权给我的。

最佳答案

试试这个,注意“Basic”后面的空格

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);

关于javascript - 使用 GAS 通过 API 访问高层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24788048/

相关文章:

google-apps-script - 在 GMail 中添加 sendAsMail 别名

javascript - 使用 window.open 打开存储在变量中的 URL

javascript - JavaScript 中的调用堆栈大小

javascript - 有人可以用 JavaScript 解释这个函数吗

html - 需要帮助获取 html 并在 C 中使用,就像在 fopen 中使用文本文件一样

javascript - 在 App 脚本中读取 HashMap

javascript - jQuery/Javascript - 循环

PHP cURL CURLOPT_FILE 在 curl_exec() 之后为空

尽管传递了参数,但 REST Api 调用失败,因为缺少参数

google-apps-script - 您可以通过 Google 文档中的应用程序脚本设置 rowspan/colspan 吗?