Microsoft Graph是 Microsoft 365 中通往数据和智能的网关。 它提供统一的可编程模型,可用于访问 Office 365、Windows 10 和企业移动性 + 安全性中的海量数据。 利用 Microsoft Graph 中的大量数据针对与数百万名用户交互的组织和客户构建应用。
简单来说,微软开放了许多它的产品接口,我们通过Microsoft Graph可以获得操作这些产品数据的能力。比如说日历、邮箱等等。在学习它之前,我们得先拥有一个微软账号,并新建一个应用。
去这里新建应用:https://portal.azure.com/
这个网站功能较多,直接使用搜索功能,搜索关键词“应用注册”即可看到该功能,注册一个应用,拿到客户端id与密码,如下图所示:
创建密码
授权接口
使用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,具体的自行参阅官方文档。
一般来说照着我的步骤走是不会出错的,最后得到的值如下:
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/webdev/241536.html