2017-06-09 3 views
0

Ich versuche, einen Entwurf einer Nachricht mit Google Apps Script zu aktualisieren. Hier ist der Code.Google Mail-Draft-API mit 404-Fehler

var forScope = GmailApp.getInboxUnreadCount(); 
var params = {method:"put", 
       contentType: "application/json", 
       headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}, 
       muteHttpExceptions:true, 
       payload:JSON.stringify({ 
        "message": { 
        "id": draftId, 
        "raw": draftBody 
        } 
       }) 
       }; 
    var resp = UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts/"+draftId, params); 

Aber es kehrt Fehler folgende

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "notFound", 
    "message": "Not Found" 
    } 
    ], 
    "code": 404, 
    "message": "Not Found" 
} 
} 

ich mehrfach überprüft haben, dass der Entwurf des ID korrekt ist.

Antwort

1

AFAIK, draft ID unterscheidet sich von der message ID. Wenn Sie Ihren Code betrachten, scheint es, als würden Sie messageId anstelle von draftId liefern.

Versuchen Sie, die unveränderliche Entwurfs-ID mit Users.drafts: list zu erhalten. Dies wird einen Antworttext mit der folgenden Struktur zurückkehrt

"drafts":[ 
    { 
    "id": draftId, 
    "message": { 
    "id": messageId, 
    "raw": bytes 
    } 
    } 
] 

Dann können Sie draftId verwenden, wenn Sie mit Users.drafts: update aktualisieren.