0

从 Outlook Web 加载项问题中看到了对 Outlook RestAPI 的访问,但没有关于附件的内容。

我成功地从我的加载项发出 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
    

我得到的错误是:

{"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"
    

希望大家能帮帮我,谢谢!!

4

1 回答 1

1

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

如果您想检查这一点,请复制您返回的令牌并前往https://jwt.io/。将其粘贴到“编码”框中并检查有效负载。如果您看到"ver": "Exchange.Callback.V1"它是项目范围的令牌。如果您看到"ver": "Exchange.Callback.V2"它是邮箱范围的。

在#2上,我不知道。如果您可以在 Outlook 客户端计算机上获取 Fiddler 跟踪以捕获发出令牌请求的加载项,这将很有帮助。

于 2017-02-23T16:01:14.490 回答