当前位置: 首页 > 知识库问答 >
问题:

使用具有相同令牌的Microsoft Office365 (Outlook) API和Graph API

燕承安
2023-03-14

我已经使用Office365(Outlook)API一段时间了(https://outlook.office.com)

现在我需要能够上传文件。我发现它只能通过使用其他服务来完成。(例如微软图形)。

例如https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createuploadsession

问题是,以我目前的身份认证,我无法同时访问这两种服务:

    < Li > https://outlook . office . com < Li > https://graph . Microsoft . com

现在我使用范围:

openid offline_access profile 
https://outlook.office.com/calendars.readwrite.shared

当我添加文件时。读写。总之,我再也无法访问outlookendpoint。我得到以下错误:

The audience claim value is invalid 'https://graph.microsoft.com'

有没有一种方法能够使用相同的令牌调用两个服务?也许有什么变通办法?

共有1个答案

董良策
2023-03-14

不,你不能使用同一个令牌。访问令牌通过受众声明限定在特定API的范围内。Outlook API拒绝您的令牌,因为令牌内的受众声明是为Graph设置的。

对您来说,最简单的解决方案是仅将图形用于与Outlook相关的内容。就支持的内容而言,它们非常接近(参见https://learn.microsoft.com/en-us/outlook/rest/compare-graph-outlook)。

如果你使用的内容仅在 Outlook 终结点上可用,则需要使用单独的令牌。

 类似资料:
  • 我有一个基于OAuth2的授权服务器。与访问令牌一起发送的还有刷新令牌。 我可以使用访问令牌获得一个资源,当它过期时,我使用刷新令牌请求一个新的资源。 不过,我也可以用刷新令牌获取资源...是Oauth2的典型行为吗?我以为这个刷新令牌只用于请求新的访问令牌,而不是用于获取受保护的资源。 多谢了。

  • 本文件规定: Firebase ID令牌是短暂的,只能持续一个小时;刷新令牌可用于检索新的ID令牌。 我是否可以说,刷新令牌本质上同时充当客户端设备的密码和标识,并且拥有刷新令牌意味着能够检索ID令牌,从而能够作为与该刷新令牌关联的用户进行身份验证? 如果是这样,那么拥有这两个不同的令牌的目的是什么? 谢谢

  • 问题内容: 我正在使用制作REST API 。我正在使用(https://github.com/auth0/java- jwt )进行令牌生成工作。请检查以下代码。 UserJSONInfo -REST方法类 UserInfoService- 服务层 AuthKey-仅 包含 web.xml 我将令牌生成类维护为另一个Java项目,并将其作为库导入此处(我正在使用Netbeans)。下面是代码 现

  • 我的Outlook web外接程序正在使用Office.Context.Mailbox.GetCallbackTokenAsync方法,在选项中传递“is rest=true”。这是为了获得一个授权令牌,我可以使用它向Outlook REST API发出请求。这在Outlook 2019、OWA和Office 365 Windows桌面客户端上运行良好,但在Outlook 2016上不起作用。尝试

  • 我正在使用Lusita的PHP Oauth库(https://github.com/Lusitanian/PHPoAuthLib)。 在用户在我的应用程序中获得授权后,我收到了访问令牌和访问令牌密钥的值。现在有了这些值,我想对API进行身份验证调用。如何使用Access Token、Access Token Secret以及Consumer Key和Consumer Secret的值进行调用?我不

  • 我正在用制作一个rest API。我使用(https://github.com/auth0/java-jwt)进行令牌生成工作。请检查下面的代码。 UserInfoService-服务层 AuthKey-仅包含 web.xml