2017-03-07 1 views
1

Ich spiele mit Google Apps Script unter Verwendung der ActiveCollab HTTPS-API als eine Möglichkeit, Google Forms mit bestimmten Projekten zu verknüpfen. Ich kann nicht herausfinden, wo das Zugriffstoken in der HTTP-Anforderung beim Erstellen einer Aufgabe in einem Projekt verwendet werden soll.Welche Anrufe brauchen ein Zugriffs-Token in ActiveCollab v5 API

Vielleicht vermisse ich es, but which API calls in the documentation erfordern das Zugriffs-Token als Teil der POST-Anfrage?

Die grundlegendste POST-Anfrage war ich geschickt habe:

var token = // token from authentication 

{ 
    "name": "Test task", 
    "token": token 
} 

... und es ergab ein 401-Fehler, sagen, dass ich nicht authentifiziert wurde.

So habe ich versucht:

var token = // token from authentication 

{ 
    "name": "Test task", 
    "username": // my username, 
    "password": // my password, 
    "token": token 
} 

... mit dem gleichen Ergebnis. Also, welche Anrufe erfordern eine token und geht das Token in der POST-Payload? Oder sollte es in den POST-Optionen sein?

aktualisieren 3/10/2016

ich den Authorization Parameter an die POST Anfrage hinzugefügt haben und jetzt in der Antwort einen ungültigen Token Fehler erhalte. Ich habe meinen Cache gelöscht und die Autorisierung erfolgreich durchgeführt. Meine Testfunktion ist unten.

function postTicket() { 

    // Retrieve the stored token after a successful authorization 
    var token = PropertiesService.getScriptProperties().getProperty("token"); 

    var data = { 
    "name": "Testing task" 
    } 

    var headers = { 
    Authorization: 'Bearer ' + token 
    }; 

    var options = { 
    "method": "post", 
    "contentType": "application/json", 
    "headers": headers, 
    "payload": JSON.stringify(data) 
    } 

    try { 
    var url = BASE_URL + "/projects/8/tasks"; 
    var response = UrlFetchApp.fetch(url, options); 
    var json = response.getContentText(); 
    var data = JSON.stringify(json) 

    Logger.log(data); 
    } catch (e) { 
    Logger.log(e); 
    } 
} 

Die protokollierten Fehler ist:

Code zurückgegeben 500 { "type":. "ActiveCollab \ Authentication \ Exception \ InvalidTokenException", "message": "Authorization Token nicht gültig" "Code": 0

+0

Yea warf einen Blick auf die Dokumente. Keine Erwähnung wo in der Anfrage das Token zu setzen. –

Antwort

2

hatte ich das gleiche Problem, aber nach Active Collab SDK code Prüfung habe ich herausgefunden, dass wir diese Header verwenden sollten:

var headers = { 
    'X-Angie-AuthApiToken': token 
}; 

Durch die Nutzung dieser Code ich darf erstellen Aufgaben via API.

+0

Ehrfürchtig. Vielen Dank! – Brian

0

Token benötigt gesendet Authorization HTTP-Header werden:

Authorization: Bearer TOKEN_THAT_YOU_GOT_FROM_ACTIVE_COLLAB 

Das bedeutet, dass Sie das Token als Teil des Anforderungsheaders und nicht als Payload senden müssen. Weitere Informationen finden Sie in der Google Apps-Dokumentation (ich sehe, dass fetch das Objekt headers als eines der Argumente enthält, daher gibt es Unterstützung für diese Art von Interaktion, die in die Plattform integriert ist).

+0

Okay, das macht Sinn. Ich habe den Header hinzugefügt und jetzt sehe ich einen Fehler, der besagt, dass das Token fehlerhaft ist. Muss es als URI-Komponente codiert werden? Oder kann ich es als JS-Objekt senden? – Brian

+0

Oder muss ich die API in ActiveCollab selbst abonniert haben? – Brian

Verwandte Themen