最近因为工作需要,接触学习使用了Microsoft Graph API。在看完Microsoft的Graph官方文档之后,也做了一些简单的案例,在Stack Overflow上做过一些回答。整体来说,Microsoft Graph API还是感觉很好用的,只是个人感觉在国内使用Microsoft生态的似乎并不多。
这篇文章对Graph API做个简单的介绍,并提供一些文档和实用工具,仅供参考。
如果有兴趣,可阅读陈希章的系列文章
一、什么是Microsoft Graph API
根据官方文档,Microsoft Graph API是Microsoft Office 365的数据网关,也就是对外通过统一的接口,来调用微软云服务。如SharePoint、One Notes、Email、Calendar、Groups等等服务。
你可以通过Graph提供的相应的接口,来实现一些功能,如:查询个人的信息,查询我的邮件,发送一份邮件,查看我最近的日程安排,查看我的组成员、根据一些人的日程安排,安排一场会议、获取我的设备上的文件、获取我的OneNote的信息、对SharePoint做相关操作等等;
Graph 是一套Restful的接口,他的所有接口都是通过标准的http方法(GET、POST、PUT、DELETE)可以访问到相关的数据,还可以通过添加相关的参数,对数据进行筛选、排序等操作。返回的数据以JSON的格式进行传输,这种特性决定了Microsoft Graph可以跨平台开发。任何能发送Http请求和解析JSON数据的开发语言都能调用Graph API。同时微软也提供了多种Simple Code和SDK。如,Angular(JS版本)、.Net MVC、IOS、php、Python、Ruby、Node.js等。
二、Graph提供的服务:
1.用户和组相关的服务
用户:就是使用Microsoft 365云服务的用户的一部分。是Microsoft Graph的核心,Microsoft Graph服务都是围绕着用户提供服务的。
组:就是将几个用户放在一个类别中,我的理解就是和QQ群、微信群相类似
身份认证和访问管理:
采用Azure AD作为身份验证的提供方,所有调用服务的请求,都必须是经过合法授权的。
身份认证的一共有两套,一套是所谓的个人账号,如常见的hotmail.com outlook.com这样的账号,一种是Work or School账号,因此,身份认证AzureAD1.0仅支持work or School 账户,Azure AD v2.0可同时支持work or school 和Microsoft账户。
2. 工作相关的服务
日历,文件、邮件、OneNote、个人联系人、Workbook and charts。
更多服务可以查看官网
三、Graph常用的工具和SimpleCode
1.要使用Graph进行开发,需要做一下几个步骤
1) 注册一个应用程序
作为开发者,可以在Join the Office 365 developer program today!会有一年的免费订阅,详细注册流程可以参考:
https://docs.microsoft.com/en-us/office/developer-program/office-365-developer-program
作为正式环境,需要在Azure上注册一个应用程序
2)Graph提供了一些简单的实例,可以使用这些示例快速创建一个项目。
3)修改相关参数,如ClientID,Secret等
4)运行程序
2.快速体验GraphAPI,可以通过Graph Explore,默认打开后,微软提供了一个默认的账户来体验Graph API
3.如果开发中有问题,可以在Stack Overflow上进行提问