2017-09-14 4 views
0

Google api를 사용하여 Gmail에서 초안을 만들려고합니다.게시 요청 본문 google api

승인 후 POST를 사용하여 요청 본문을 전송하는 데 문제가 있습니다. 다음은 간단한 코드입니다. 해결

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

이 잊었 : ('콘텐츠 유형', '응용 프로그램/JSON')

request.setRequestHeader을;

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

사용 onreadystatechange이 된 후 if(this.readyState == 4 && this.status == 200){에게 대신의

답변

1

.

  1. this.readyState == 4은 요청이 완료 또는
  2. this.status == 200
  3. 가 또한 성공했음을 의미 처리된다는 것을 의미한다.

.onload이 XMLHttpRequest 2에 추가 된 반면 onreadystatechange은 원래 사양 이후로 변경되었습니다. .onloadthis.readyState == 4과 동등합니다.

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

감사합니다,하지만이 문제가 해결되지 않습니다

그래서 코드는 다음과 같이됩니다. 나는 상태 400을 얻고있다. 그래서 나는 google이 무엇을 말해야하는지보기 위해 onload로 바꿨다. – PenPen

+0

@ PenPen 400은 요청이 잘못되었음을 나타냅니다. 즉, 클라이언트가 서버로 보낸 데이터 스트림이 규칙을 따르지 않았습니다. – PredatorIWD