2014-11-18 2 views
3

Gmail REST API를 사용하여 메일을 읽음으로 표시하려고합니다.Gmail REST API - 메일을 읽음으로 표시

$('#markGmailRead').click(function(){ 
    var request = $.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     headers: { "Authorization": "Bearer <<ACCESS KEY>>", 
        "Content-Type": "application/json"}, 
     url: 'https://www.googleapis.com/gmail/v1/users/me/messages/<<MESSAGEID>>/modify', 
     data: {"addLabelIds": ["UNREAD"]} 
    }) 
    request.done(function(data){ 
     // when the Deferred is resolved. 
     console.log(data); 
    }) 
    request.fail(function(){ 
     // when the Deferred is rejected. 
     console.log('fail'); 
    }) 
}) 

이 다음 JSON 결과가 반환 :

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "parseError", 
    "message": "Parse Error" 
    } 
    ], 
    "code": 400, 
    "message": "Parse Error" 
} 
} 

은 다른 사람이 이것을 경험 했습니까? 나는 이것이 무엇을 일으킬 지 모른다고 생각합니다.

+0

왜 제목이 말하고 있는가 '마크 메시지 근무 변경 및 데이터' "addLabelIds"를 포함 : [ "UNDREAD"]'? –

답변

2

나는 이것을 이해하고 작동시킬 수있었습니다. 할 수있는 유일한 차이점과 같이 데이터를 캐릭터 라인 화하는 것이 었습니다 :

data: JSON.stringify({"removeLabelIds":["UNREAD"]}), 

이 변경 작동하게 만들기.

1

코드에 ContentType = "application/json; charset = UTF-8"을 추가하십시오. 또한 오류에 대한 자세한 내용은 link을 확인하십시오.

오류가 계속 표시되면 알려주세요.

1

유성에서는이 문제가 발생했습니다. 문제는 'params'특성에서 removeLableIds를 전달하는 것이 었습니다. read` 같이 '데이터'속성 즉

var apiUrl = "https://www.googleapis.com/gmail/v1/users/me/messages/" 
 
    + messageID + "/modify"; 
 

 
var result = HTTP.post(apiUrl, { 
 
     data: { "removeLabelIds": ["INBOX"] }, 
 
     headers:{ 
 
       "content-type":"application/json ; charset=UTF-8", 
 
       "Authorization": "Bearer " + tokens.accessToken 
 
     } 
 
});