让代码更简单

Microsoft Graph开放接口学习——获得授权token

重要:本文最后更新于2020-05-07 08:24:11,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

Microsoft Graph是 Microsoft 365 中通往数据和智能的网关。 它提供统一的可编程模型,可用于访问 Office 365、Windows 10 和企业移动性 + 安全性中的海量数据。 利用 Microsoft Graph 中的大量数据针对与数百万名用户交互的组织和客户构建应用。

简单来说,微软开放了许多它的产品接口,我们通过Microsoft Graph可以获得操作这些产品数据的能力。比如说日历、邮箱等等。在学习它之前,我们得先拥有一个微软账号,并新建一个应用。

去这里新建应用:https://portal.azure.com/

这个网站功能较多,直接使用搜索功能,搜索关键词“应用注册”即可看到该功能,注册一个应用,拿到客户端id与密码,如下图所示:

Microsoft Graph开放接口学习

Microsoft Graph开放接口学习

创建密码

Microsoft Graph开放接口学习

Microsoft Graph开放接口学习

授权接口

使用GET请求。

请求地址

复制
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
  • state 标识,请求后微软将其返回给重定向地址
  • scope 授权范围
  • response_type 填写code
  • redirect_uri 重定向地址
  • client_id 刚刚申请的应用id

返回值

参数 描述
code 应用程序请求的 authorization_code。 应用可以使用授权代码请求目标资源的访问令牌。 Authorization_codes 生存期较短,通常会在大约 10 分钟后过期。
state 如果请求中包含状态参数,则响应中应显示相同的值。 应用应验证请求和响应中的状态值是否相同。

上面的数据请求成功后,将会在设置的重定向地址后追加code参数,其值是我们下一步获取access_token的重要凭证。

获取access_token

使用post请求。

请求地址

复制
https://login.microsoftonline.com/common/oauth2/v2.0/token
  • client_id 应用id
  • scope 授权范围
  • client_secret 应用密码,就是上面我们创建的那个
  • grant_type 填authorization_code ,上一步得到的code就是它
  • redirect_uri 重定向地址
  • code 上一步的code值

返回值

参数 描述
access_token 请求的访问令牌。 应用可以使用此令牌验证受保护的资源,例如 Web API。
token_type 指示令牌类型值。 Azure AD 唯一支持的类型是 Bearer
expires_in 访问令牌有效的时间长度(以秒为单位)。
scope access_token 的有效范围。
refresh_token OAuth 2.0 刷新令牌。 应用程序可以使用此令牌,在当前的访问令牌过期之后获取其他访问令牌。 refresh_token 的生存期较长,可用于长时间保留对资源的访问权限。 有关刷新访问令牌的详细信息,请参阅官方文档。
注意: 仅当已请求 offline_access 作用域时提供。
id_token JSON Web 令牌 (JWT)。 应用可以解码此令牌的段,以请求已登录用户的相关信息。 应用可以缓存并显示值,但不应依赖于这些值获取任何授权或安全边界。 有关 id_tokens 的详细信息,请参阅id_token reference
注意: 仅当已请求 openid 作用域时提供。

注意事项

注意scope授权范围的写法,我这里测试的发送邮件,其值为https://graph.microsoft.com/mail.send,具体的自行参阅官方文档。

一般来说照着我的步骤走是不会出错的,最后得到的值如下:

Microsoft Graph开放接口学习

Microsoft Graph开放接口学习

感觉很棒!可以赞赏支持我哟~

6 打赏

评论 (2)

登录后评论
请问能不能详细说说您注册应用的配置,还有请求头。我感觉我卡在这儿了,谢谢大佬~~~
那我明天再写一篇教程详细说下吧。
QQ咨询 邮件咨询 狗哥推荐