NodeJS对接Microsoft Graph API操作用户Outlook日历事件(一)
前言
背景是客户自己公司员工有微软账号,下属经销商没有微软账号,客户想在其公司官网开发和outlook日历一致的Schedule管理功能,实现员工和下属经销商Schedule的互通。
相关语言是NodeJS和Angular,Angular日历插件用的是Syncfusion的Schedule组件,Syncfusion是一款收费插件,所以将不展开介绍。
此系列文章主要介绍了如何对接Microsoft Graph来获取,登录,删除用户的outlook日历事件。
系列文章会分三个部分,简介如下
-
介绍使用Microsoft Azure门户中注册应用。
-
通过Microsoft Identity Platform获取访问令牌,包括用户认证和无用户认证。
-
调用Microsoft Graph API实现outlook日历事件的操作,包括个人事件和共享会议。
接下来是一些可能会使用到的相关网站(tips:URL里面的 en-us 换成 zh-cn 就是中文了)
Microsoft Azurehttps://azure.microsoft.com/en-us/features/azure-portal/Microsoft graph 官方文档https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0Microsoft graph 官方接口测试工具https://developer.microsoft.com/en-us/graph/graph-explorerNodejs GitHub 官方demohttps://github.com/microsoftgraph/msgraph-training-nodeexpressappNodejs GitHub demo说明文档https://docs.microsoft.com/en-us/graph/tutorials/node?tutorial-step=4Angular GitHub 官方demohttps://github.com/microsoftgraph/msgraph-training-angularspaAngular GitHub demo说明文档https://docs.microsoft.com/en-us/graph/tutorials/angular?tutorial-step=3JWT 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也一致。
标签:
相关文章
-
无相关信息