2013-03-18 21 views
8

Se non sbaglio, come da UrlFetch Documentation dovrei essere in grado di chiamare lo New Basecamp API da Google Apps Script. Sospetto che la mia confusione derivi da un errore di formattazione GAS (e dal fatto che sto solo iniziando tutto questo). Ho cercato su Google per un lungo periodo. Questo è quello che ho e l'errore che tornare da GAS:Script di Google Apps ed API esterna

mycode in GAS:

function myFunction() { 
    var url = "https://basecamp.com/******/api/v1/projects.json"; 
    var headers = { 
       "contentType": "application/json", 
       "headers":{ "User-Agent": "MY_APP_NAME", 
          "username:password" : "user:pass"}, 
       "validateHttpsCertificates" :false 
       }; 

var response = UrlFetchApp.fetch(url, headers); 
var text = response.getResponseCode(); 
Logger.log(text); 
} 

messaggio di errore GAS:

Request failed for https://basecamp.com/2166446/api/v1/projects.json returned code 401. 
Server response: HTTP Basic: Access denied. (line 9, file "Code") 

Spero che questa è una domanda ragionevole e vi ringrazio per l'aiuto.

risposta

15

la correttezza intestazione per HTTP Basic Authentication, che si avvale di Utilities.base64Encode, è la seguente:

"headers": { 
    "User-Agent": "MY_APP_NAME (App URL/your email address)", 
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + password) 
}, 
+0

stupefacente! Grazie! Funziona alla grande –

+0

c'è un sito dove questa informazione è così che posso impararla? –

+1

@ mat10112: le informazioni sono dappertutto. Ho iniziato con il collegamento all'API nel tuo post pubblicato originale, dove si dice che è possibile utilizzare l'autenticazione di base HTTP. Dal momento che è più facile da usare di OAuth, sono andato su Wikipedia per ricontrollare l'esatta intestazione da utilizzare per l'autenticazione di base HTTP. Ho quindi controllato la pagina di documentazione [App Script API] (https://developers.google.com/apps-script/), poiché sapevo che avevano alcune utilità incorporate. Quindi ho appena messo insieme. –

Problemi correlati