在获取REST令牌之前需要保存项目的要求导致撰写的项目草案为空

时间:2018-10-19 18:16:13

标签: outlook-addin

当我们的应用尝试在Compose中获取REST令牌时,O365返回以下错误:

请求:

Office.initialize = 
    () => Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, 
    res => console.log(res));

响应:

{
  "name": "CanOnlyGetTokenForSavedItem",
  "message": "The token can't be retrieved until the item is saved.",
  "code": 9029
}

解决方案是使用Office API保存项目:

Office.context.mailbox.item.saveAsync(
  function callback(result) {
    // Process the result
  });

我们确认此方法有效,但是,如果用户以后选择放弃用户对消息/撰写应用程序的操作,它也会在草稿文件夹中保留一条空消息。

我认为这应该由Outlook处理,而不是由应用处理,如果邮件被放弃,Outlook应该删除该项目。

1 个答案:

答案 0 :(得分:0)

对于Outlook,这是草稿。即使使用Outlook自动保存选项,也会出现此现象,邮件将保存在草稿文件夹中。 用户必须将其从草稿文件夹中明确删除。

Outlook不会自动删除用户/加载项保存的邮件,因为这将丢失数据(如果Outlook这样做的话)。

但是,如果您要保存一条消息,并且确定可以删除该消息,则可以使用EWS / REST来完成。