我看到了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本教程。例如,我成功获得了一些消息细节),但我有两个问题:
我无法使用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),但没有任何帮助。
有时调用Office.context.mailbox.getCallbackTokenAsync({isRest:true},function()....函数工作并返回访问令牌,有时会返回错误,我也不知道是什么原因。 我有时得到的错误是:
OSF.DDA.AsyncResult
error:OSF.DDA.Error
status:"failed"
希望你能帮助我,谢谢大家!!
答案 0 :(得分:0)
在#1上,错误表示您拥有的令牌仅限于当前项目。 REST API无法使用此类令牌来修改附件,因此您会收到该错误。 工作的正确方法是在加载项清单中指定ReadWriteMailbox
,然后您获得的令牌应该是邮箱范围的令牌。但是,桌面Outlook对getCallbackTokenAsync
的处理存在一个错误,导致它错误地仍然返回一个项目范围的令牌。该错误已得到修复,但更新尚未公开推送。
如果您想检查此内容,请复制您获得的令牌并转到https://jwt.io/。将其粘贴到"编码"框并检查有效负载。如果您看到"ver": "Exchange.Callback.V1"
它是项目范围的令牌。如果您看到"ver": "Exchange.Callback.V2"
它是邮箱范围的邮件。
在#2上,我不知道。如果你可以在你的Outlook客户端机器上获得一个Fiddler跟踪来捕获加载项发出令牌请求,那将会很有帮助。