NodeJS对接Microsoft Graph API操作用户Outlook日历事件(一)

前言

背景是客户自己公司员工有微软账号,下属经销商没有微软账号,客户想在其公司官网开发和outlook日历一致的Schedule管理功能,实现员工和下属经销商Schedule的互通。

相关语言是NodeJS和Angular,Angular日历插件用的是Syncfusion的Schedule组件,Syncfusion是一款收费插件,所以将不展开介绍。

此系列文章主要介绍了如何对接Microsoft Graph来获取,登录,删除用户的outlook日历事件。

系列文章会分三个部分,简介如下

  1. 介绍使用Microsoft Azure门户中注册应用。

  2. 通过Microsoft Identity Platform获取访问令牌,包括用户认证和无用户认证。

  3. 调用Microsoft Graph API实现outlook日历事件的操作,包括个人事件和共享会议。

接下来是一些可能会使用到的相关网站(tips:URL里面的 en-us 换成 zh-cn 就是中文了)

Microsoft Azure https://azure.microsoft.com/en-us/features/azure-portal/
Microsoft graph 官方文档 https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0
Microsoft graph 官方接口测试工具 https://developer.microsoft.com/en-us/graph/graph-explorer
Nodejs GitHub 官方demo https://github.com/microsoftgraph/msgraph-training-nodeexpressapp
Nodejs GitHub demo说明文档 https://docs.microsoft.com/en-us/graph/tutorials/node?tutorial-step=4
Angular GitHub 官方demo https://github.com/microsoftgraph/msgraph-training-angularspa
Angular GitHub demo说明文档 https://docs.microsoft.com/en-us/graph/tutorials/angular?tutorial-step=3
JWT token解析 https://jwt.ms/

最后成果大致是这样,左边是outlook日历,右边是实现的效果。

Microsoft Azure 注册应用

注册使用的是普通员工的微软账号,此外还需要一个管理员的微软账号。

1.登录Microsoft Azure,点击左上角菜单

2.左边栏点击Azure Active Directory

3.点击App registration

4.之后点击New registration

5.输入app的名称,以及选择谁可以访问这个API,之后是认证后的重定向URL(如果需要的话),关于这个url会在第二部分用户认证的时候补充说明。

6.注册完成后如下,这里的client ID 和 tenant ID比较重要,之后的认证会使用到。

7.接下来为API设置访问权限,注意有些权限是需要管理员同意的,

8.添加权限如下

以上是在Microsoft Azure进行一个简单的Api注册

接下来是一些需要注意的设置,这里通过已经在注册完成并在使用的Api来介绍

 此处的Client Secrets是无用户认证的时候需要的,需要注意的是secret value只会在创建的时候显示一次,再次显示的时候将无法显示。

此处是开发的时候,为了测试各种情况,所以追加了很多许可,如果只是读取OutLook日历事件的话,只需要User的Read和Calendars的Read和Write。

status是是否被管理员许可的状态

完成注册之后可以借助Graph 浏览器来简单测试,这里比较方便的一点是会自动提示该接口需要什么样的权限,如果缺少的话,可以及时去API permission里面追加。

完成Microsoft Azure注册之后,我们将可以访问Microsoft 标识平台获取一个访问令牌,再通过访问令牌来调用Microsoft Graph API实现相关操作。

这里补充一个angular的一个访问流程,NodeJS也一致。

猜你喜欢

转载自blog.csdn.net/bai_ye_/article/details/115024463
今日推荐