2016-06-06 3 views
0

Google Apps Scripting을 사용하여 batchDelete 메소드를 올바르게 작동 시키려고했지만 제대로 전달하려면 OAuth2를 사용하여 최종 사용자 계정에 액세스 할 수 있었지만 요청한 페이로드를 제거하면이 오류가 사라지고 올바른 ID를 지정해야한다고 표시됩니다.이 코드는 일괄 삭제하려는 메시지의 ID에서 "백엔드 오류"코드 500을 얻습니다. URLFetchApp를 사용하여 페이로드를 전달하려고해도이 오류가 발생합니다. 나는 틀린 일을하고 있다고 확신한다. 어떤 도움을 주시면 감사하겠습니다. 다음은 문제의 코드 부분입니다.Google Apps 스크립팅을 사용하여 Gmail API의 batchDelete

... 
var payload2 = 
{ 
    "ids:" [ 
     "test", 
     "test2" 
     ] 
} 
payload2 = JSON.stringify(payload2); 

options = 
    { 
     headers: 
     { 
     Authorization: 'Bearer ' + service.getAccessToken() 
     }, 
     "ContentType": "application/json", 
     "Method": "POST", 
     "muteHttpExceptions": true, 
     "payload": payload2 
    }; 

    url = "https://www.googleapis.com/gmail/v1/users/" + encodeURIComponent(emailAddress) +"/messages/batchDelete"; 

results = getResponseFromURL(url, options); 

if(results == null || results == "") 
{ 
    Logger.log("Successfully deleted " + totalMessages + " messages for " + emailAddress); 
} 
else 
{ 
    Logger.log("The Results: " + results.toString()) 
} 
.... 

답변

0

위의 스크립트로 문제가 해결되었습니다. URLFetchApp API를 사용한 것은 처음이었고 contentType 및 메서드 매개 변수가 대소 문자를 구분한다는 것을 알지 못했습니다. 문제를 해결하기 위해 필자는 이와 같은 옵션 매개 변수에서 사례를 변경했습니다.

options = { 
.... 
"contentType": "application/json", 
"method": "POST", 
... 
}; 
관련 문제