“尝试从Microsoft Graph API获取访问令牌时提供的客户端密钥已过期”

问题描述 投票:0回答:1

我正在尝试将Outlook日历集成到我为小型企业(React前端,Django Rest Framework后端)构建的系统(网络应用程序)中,以便用户可以查看系统上的所有日历事件,以及在那里创建和更新它们,而不必在Outlook和系统之间来回移动。

我在编码本身上没有任何问题,只在访问令牌的检索上有过之,以便我可以访问用户的日历,一旦有了,实际的实现应该相对简单。

但是无论我做什么,我都会不断收到错误AADSTS7000222: The provided client secret keys are expired.,这很奇怪,因为我创建的客户端密钥设置为永不过期。

我关注Get Access on Behalf of a UserGet Access Without a User的文档,但是在两种情况下我都收到了相同的错误消息。我不确定是否有什么区别,但是我认为“代表用户获取访问权限”的文档是我应该采取的正确方法,因为需要访问每个用户的日历,以便可以显示事件并创建。我肯定知道我为client_idclient_secret提供了正确的值,因为它们与我在Azure上注册的应用程序中的值完全匹配。

首先,我尝试了以下操作(来自https://docs.microsoft.com/en-us/graph/auth-v2-service):

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials

使用邮递员,将client_idclient_secret值更改为与我的应用程序中的值匹配。

我收到了错误消息AADSTS7000222: The provided client secret keys are expired.,所以我决定尝试以下操作(来自https://docs.microsoft.com/en-us/graph/auth-v2-user):

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=offline_access%20user.read%20mail.read
&state=12345

在必要时更改所有值(承租人为common,以及更改client_idredirect_uri

响应给了我一个访问代码,我在以下代码中使用了它:

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh

我再次根据需要更改了值,但仍然收到与以上AADSTS7000222: The provided client secret keys are expired.相同的错误消息。

microsoft-graph outlook-restapi
1个回答
0
投票

[您是否尝试过使用邮递员收藏来使自己前进?只是为了消除错别字?https://docs.microsoft.com/en-us/graph/use-postman

© www.soinside.com 2019 - 2024. All rights reserved.