无法使用 Outlook rest 在 outlook 加载项中向邮件添加附件 API
Can't add attachment to message in outlook add-in using Outlook rest API
我看到这个 Access to Outlook RestAPI from an Outlook web Add-in 问题,但没有关于附件的内容。
我按照 https://dev.office.com/docs/add-ins/outlook/use-rest-api?product=outlook 本教程从我的加载项中成功地使 outlook rest API 请求。例如,我成功获取了一些消息详细信息),但我有 2 个问题:
我无法通过 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().... 函数工作和 return 访问令牌,有时 return错误,我也不知道是什么原因。
我有时得到的错误是:
OSF.DDA.AsyncResult
error:OSF.DDA.Error
status:"failed"
希望大家能帮帮我,谢谢大家!!
在 #1 上,错误表明您拥有的令牌仅限于当前项目。 REST API 不能使用这种令牌来修改附件,所以你会得到那个错误。此 应该 工作的正确方法是您在加载项清单中指定 ReadWriteMailbox
,然后您取回的令牌应该是邮箱范围的令牌。但是,目前桌面版 Outlook 在处理 getCallbackTokenAsync
时存在一个错误,导致它仍然错误地 return 一个项目范围的令牌。该错误已修复,但更新尚未公开推送。
如果你想检查这个,复制你得到的令牌并转到 https://jwt.io/。将其粘贴到 "Encoded" 框中并检查负载。如果您看到 "ver": "Exchange.Callback.V1"
,则它是项目范围的标记。如果您看到 "ver": "Exchange.Callback.V2"
,那是邮箱范围的。
关于#2,我不知道。如果您可以在 Outlook 客户端计算机上获取 Fiddler 跟踪以捕获发出令牌请求的加载项,那将会很有帮助。
我看到这个 Access to Outlook RestAPI from an Outlook web Add-in 问题,但没有关于附件的内容。
我按照 https://dev.office.com/docs/add-ins/outlook/use-rest-api?product=outlook 本教程从我的加载项中成功地使 outlook rest API 请求。例如,我成功获取了一些消息详细信息),但我有 2 个问题:
我无法通过 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().... 函数工作和 return 访问令牌,有时 return错误,我也不知道是什么原因。 我有时得到的错误是:
OSF.DDA.AsyncResult error:OSF.DDA.Error status:"failed"
希望大家能帮帮我,谢谢大家!!
在 #1 上,错误表明您拥有的令牌仅限于当前项目。 REST API 不能使用这种令牌来修改附件,所以你会得到那个错误。此 应该 工作的正确方法是您在加载项清单中指定 ReadWriteMailbox
,然后您取回的令牌应该是邮箱范围的令牌。但是,目前桌面版 Outlook 在处理 getCallbackTokenAsync
时存在一个错误,导致它仍然错误地 return 一个项目范围的令牌。该错误已修复,但更新尚未公开推送。
如果你想检查这个,复制你得到的令牌并转到 https://jwt.io/。将其粘贴到 "Encoded" 框中并检查负载。如果您看到 "ver": "Exchange.Callback.V1"
,则它是项目范围的标记。如果您看到 "ver": "Exchange.Callback.V2"
,那是邮箱范围的。
关于#2,我不知道。如果您可以在 Outlook 客户端计算机上获取 Fiddler 跟踪以捕获发出令牌请求的加载项,那将会很有帮助。