2014-07-16 4 views
0

Comme le titre l'indique, j'ai des problèmes d'accès aux données dans Highrise via leur API via Google Script. Je suis nouveau sur google script, donc certaines des fonctions ne me sont pas entièrement claires. Je comprends que pour l'utilisation réelle de l'API, je vais utiliser UrlFetchApp.fetch(url) et que l'URL que je vais utiliser est foocompanyname.highrisehq.com/partofhighriseyouwishtoaccess.xml. De là, je suis perdu cependant. Le API documentation explique le processus d'authentification en utilisant curl (quelque chose que je n'ai jamais utilisé auparavant) et je ne peux pas penser à des fonctions analogues dans Google Script pour y parvenir.Accès aux données Highrise via l'API à l'aide du service GAS

Voici l'exemple boucle qu'ils utilisent pour gagner simplement l'accès

curl -u 605b32dd:X https://example.highrisehq.com/people/1.xml 

Et voici une partie de la fonction, je me sers qui essaie de faire la même chose. La fonction entière est conçue pour obtenir toutes les notes des entreprises visibles à l'utilisateur dont les informations d'identification sont utilisées.

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

Cependant, quand je lance ce que je reçois l'erreur « [HTTP de base:. Accès refusé ] » que je suppose des moyens que je ne l'ai pas transmis correctement sur les informations d'identification. Quelqu'un pourrait-il me dire ce que je fais de mal? Après cette étape, je suis assez confiant quant à l'obtention des données, c'est l'autorisation qui m'apporte.

Répondre

0

Essayez cela, notez l'espace après « Basic »

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

Cette résolu le problème d'authentification, merci beaucoup. Je me sens idiot de ne pas l'avoir essayé moi-même avant de venir à StackExchange. –