2017-09-14 2 views
0

Ich versuche, einen Entwurf in Google Mail mit Google API zu erstellen.Anfrage google api

Nach der Autorisierung habe ich Probleme mit POST zu senden Anfrage Körper. Hier ist eine vereinfachte Version meines Codes.

var token = hash[1].split('=')[1]; // getting token 
var body = "some text"; 
var base64message = Base64.encode(body); //uses base64 library to encode message 
var params ={ 
    "message": { 
     "raw": base64message 
    } 
} 
var request = new XMLHttpRequest(); 
request.onload = function(){ 
    console.log(this.responseText); // parseError 
} 

request.open('POST','https://www.googleapis.com/gmail/v1/users/me/drafts?access_token='+token,true); 
request.send(JSON.stringify(params)); 

Gelöst vergaß:

request.setRequestHeader ('Content-Type', 'application/json');

Antwort

1

Statt:

request.onload = function(){ 
    console.log(this.responseText); // parseError 
} 

Verwenden onreadystatechange nach dem Sie fragen if(this.readyState == 4 && this.status == 200){.

  1. this.readyState == 4 bedeutet, dass die Anforderung beendet ist oder verarbeitet
  2. this.status == 200 bedeutet, dass es auch gelungen.

.onload wurde in XMLHttpRequest 2 während onreadystatechange hinzugefügt wurde seit dem ursprünglichen spec. .onload entspricht nur this.readyState == 4.

So wird Ihr Code wie folgt aussehen:

var token = hash[1].split('=')[1]; // getting token 
var body = "some text"; 
var base64message = Base64.encode(body); //uses base64 library to encode message 
var params ={ 
    "message": { 
     "raw": base64message 
    } 
}; 

var request = new XMLHttpRequest(); 
request.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     console.log(this.responseText); 
    } 
}; 

request.open('POST','https://www.googleapis.com/gmail/v1/users/me/drafts?access_token='+token,true); 
request.send(JSON.stringify(params)); 
+0

Danke, aber das löst nicht das Problem. Ich bekomme den Status 400, deshalb habe ich onload geändert, um zu sehen, was Google zu sagen hat. – PenPen

+0

@PenPen 400 bedeutet, dass die Anfrage fehlerhaft war. Mit anderen Worten, der Datenstrom, der vom Client an den Server gesendet wurde, folgte nicht den Regeln. – PredatorIWD

Verwandte Themen