【问题标题】:Calling REST API from Outlook Add-in returns 403 response从 Outlook 加载项调用 REST API 返回 403 响应
【发布时间】:2017-10-27 16:38:34
【问题描述】:

我遵循了Use the Outlook REST APIs from an Outlook add-in 文档

加载项正在请求ReadItem 权限。我想访问eventiCalUID,因为无法通过Office.js 直接访问该信息。

我收到了HTTP 403 回复消息:

您尝试访问的 api 不支持项目范围的 OAUTH

getCallbackTokenAsync 生成的 JWT 令牌的受众似乎还可以:

{
    "oid": "1ae9c131-c153-4e19-a43d-7861567bf415",
    "puid": "10033FFF9B4E5A14",
    "smtp": "XXXX",
    "upn": "XXXX",
    **
    "scope": "ParentItemId:AAMkADBkMzU3NGFlLTgwYjQtNGIzMy04YjMzLTExMjU2ZTcyMzZjYQBGAAAAAAA9lyHCdsq5TIA6R2YJG5gBBwArhaEQP4FKTIpowita+cx3AAAAAAENAAArhaEQP4FKTIpowita+cx3AAD67Ki0AAA=" **
}

当我向https://outlook.office365.com/api/v2.0/me/events/the-rest-id-of-the-event-listed-in-the-scope 拨打GET 时,我总是回复403

将加载项中的权限更改为ReadWriteMailbox 有效,这意味着流程良好。我不明白为什么具有ReadItem 权限的令牌不允许对该特定项目进行GET 调用。

语法问题?我是否需要以某种方式注册加载项才能访问 API?

【问题讨论】:

    标签: office-js outlook-web-addins


    【解决方案1】:

    ReadItem 权限只能访问激活加载项的项目。它不能访问邮箱中的任何其他项目,而 ReadWriteItem 可以。请参考此article

    【讨论】:

    • 我认为他是说他正在尝试为当前项目执行 GET,这应该可以。我自己试过了,我得到了同样的错误:|。它适用于消息,但不适用于事件。
    • 我们现在正在调查这个问题。感谢您的反馈。
    • 谢谢@JasonJohnston!这就解释了为什么它不起作用。也感谢 Marc 对我的问题的正确改写。
    • @OutlookAdd-insTeam-MSFT 你有关于这个问题的任何更新吗?
    • 我们尝试使用的 Outlook REST API 是 outlook.office.com/api/v2.0/me/messages{messageId}/attachments/{attachmentId}/$value 来检索项目附件(联系人、事件或消息)的原始内容采用 MIME 格式,如此处所述docs.microsoft.com/en-us/graph/outlook-get-mime-message。获取 MIME 内容仅适用于 ReadWriteMailbox 权限,因为 Outlook 加载项团队在上面做出了回应,但我们希望它与 ReadItem 一起使用。预览中的新客户端方法对我们的用例没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多