2014-07-16 66 views
0

正如標題所說,我在使用Google Script通過其API訪問Highrise中的數據時遇到了問題。我對谷歌腳本很陌生,所以一些功能對我來說並不完全清楚。我明白,對於API的實際使用,我將使用UrlFetchApp.fetch(url),我將使用的網址是foocompanyname.highrisehq.com/partofhighriseyouwishtoaccess.xml。但是我從那裏丟失了。 API documentation解釋了使用curl進行身份驗證的過程(我以前從未使用過),但我無法想象Google腳本中的類似功能可以實現此功能。使用GAS通過API訪問高層數據

這裏是他們使用簡單地獲得

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" : "[email protected]", 
        "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基本:拒絕訪問 ]」我認爲我還沒有憑據傳遞正確的手段。誰能告訴我我做錯了什麼?在完成這一步之後,我對獲取數據非常有信心,這是授權給我的授權。

回答

0

試試這個,注意「基本」

function obtainData(){ 
    //enter subject-id of admin 
    //   | 
    //   V 
    var userid = "123456789" 
    var payload = 
     { 
     "action" : "/companies.xml" 
     }; 
    var options = 
     { 
     "headers" : { "USER-AGENT" : "[email protected]", 
        "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); 
+0

這解決了身份驗證問題後的空間,非常感謝你。我感到愚蠢的是,在來StackExchange之前不要自己嘗試一下。 –