【发布时间】:2014-11-30 10:42:19
【问题描述】:
我正在尝试编写 GAS 来迁移存储在 Google Drive 中的一些电子邮件,但我真的很难让 POST 正确执行此操作,并希望有人能帮助我并引导我正确方向。
到目前为止我所拥有的是..
var id = "12345678abcdefgh";
var doc = DocumentApp.openById(id);
var emlData = doc.getText();
var api_scope = 'https://www.googleapis.com/auth/email.migration';
var app_name = "migration";
var userKey = "someone@mygappsdomain.com";
var method = "POST";
var url = "https://www.googleapis.com/upload/email/v2/users/"+userKey+"/mail?uploadType=multipart";
var fields = {"MailItem" :
{"properties":
{'isInbox': 'true','isUnread': 'true'},
'labels': ['MigrateMe']}};
var options = {payload: {data: JSON.stringify(emlData), fields: fields, contentType: 'multipart/related', boundary : 'part_boundary'}};
var fetchArgs = googleOauth_(app_name,api_scope,method,options);
try
{
var result = UrlFetchApp.fetch(url, fetchArgs).getResponseCode();
Logger.log("done");
}
catch (ee)
{
Logger.log(ee);
}
}
这显然不起作用,我收到 400 错误代码。你知道有什么问题吗?
【问题讨论】:
-
你试过让它在 api 操场上工作吗? developers.google.com/oauthplayground 我还看到你在代码中的某处使用 multipart(因为我知道它对运营商退货非常敏感——> 因为我忘记了而卡住了几个小时)
-
谢谢哈罗德,我会在操场上玩,看看能不能让它在那里工作。
-
我什至无法让它在操场上工作。我想我可能不得不放弃这个,令人沮丧的是,它遥不可及。
标签: google-apps-script google-email-migration