无法使用Outlook rest API为Outlook加载项中的邮件添加附件

时间:2017-02-23 15:36:59

标签: outlook-addin outlook-web-addins

我看到了Access to Outlook RestAPI from an Outlook web Add-in这个问题,但没有关于那里的附件。

我成功从我的加载项生成outlook rest API请求跟随https://dev.office.com/docs/add-ins/outlook/use-rest-api?product=outlook本教程。例如,我成功获得了一些消息细节),但我有两个问题:

  1. 我无法使用outlook rest API调用消息添加附件。 我尝试使用itemId进行调用,如下所示:

    https://outlook.office.com/api/v2.0/me/messages/" + itemId +"/attachments
    
  2. 我得到的错误是:

    {"error":{"code":"ErrorAccessDenied","message":"The api you are trying to access does not support item scoped OAuth."}}
    

    我尝试在清单上更改权限(ReadWriteMailbox / ReadWriteItem),但没有任何帮助。

    1. 有时调用Office.context.mailbox.getCallbackTokenAsync({isRest:true},function()....函数工作并返回访问令牌,有时会返回错误,我也不知道是什么原因。 我有时得到的错误是:

      OSF.DDA.AsyncResult
      error:OSF.DDA.Error
      status:"failed"
      
    2. 希望你能帮助我,谢谢大家!!

1 个答案:

答案 0 :(得分:0)

在#1上,错误表示您拥有的令牌仅限于当前项目。 REST API无法使用此类令牌来修改附件,因此您会收到该错误。 工作的正确方法是在加载项清单中指定ReadWriteMailbox,然后您获得的令牌应该是邮箱范围的令牌。但是,桌面Outlook对getCallbackTokenAsync的处理存在一个错误,导致它错误地仍然返回一个项目范围的令牌。该错误已得到修复,但更新尚未公开推送。

如果您想检查此内容,请复制您获得的令牌并转到https://jwt.io/。将其粘贴到"编码"框并检查有效负载。如果您看到"ver": "Exchange.Callback.V1"它是项目范围的令牌。如果您看到"ver": "Exchange.Callback.V2"它是邮箱范围的邮件。

在#2上,我不知道。如果你可以在你的Outlook客户端机器上获得一个Fiddler跟踪来捕获加载项发出令牌请求,那将会很有帮助。

相关问题