2017-06-09 7 views
0

Google Apps Scriptで下書きメッセージを更新しようとしています。ここにコードがあります。Gmail Draft APIで404エラーが返される

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

しかし、それは誤り

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

次戻っている私は、ドラフトIDが正しいことを複数回確認しました。

答えて

1

私の知る限り、draft IDmessage IDと異なっています。あなたのコードを見ると、draftIdの代わりにmessageIdを提供しているようです。

Users.drafts: listを使用して不変のドラフトIDを取得してみてください。これは、あなたがUsers.drafts: updateを使用して更新するときにdraftIdを使用することができ、そして、次のような構造で

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

をレスポンスボディが返されます。

関連する問題