最近因为工作需要,接触学习使用了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上进行提问

 

Microsoft Graph API -----起题 Graph API的更多相关文章

  1. facebook api之Business Manager API

    Business-scoped Users - The new user is tied to a particular business and has permissions scoped to ...

  2. API Monitor简介(API监控工具)

    API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用. 它是一个强大的工具,看到的应用程序和服务是如何工作的,或跟踪,你在自己的应用程序的问题. 64位支持 API ...

  3. Web API 2 入门——Web API 2(C#)入门(谷歌翻译)

    ASP.NET Web API 2(C#)入门 在这篇文章中 本教程中使用的软件版本 创建一个Web API项目 添加模型 添加控制器 使用Javascript和jQuery调用Web API 运行应 ...

  4. Windows Composition API 指南 - 认识 Composition API

    微软在 Windows 10中 面向通用 Windows 应用 (Universal Windows Apps, UWA) 新引入了一套用于用户界面合成的 API:Composition API.Co ...

  5. API 设计 POSIX File API

    小结: 1. https://mp.weixin.qq.com/s/qWrSyzJ54YEw8sLCxAEKlA API 设计最佳实践的思考 谷朴 阿里技术 昨天   阿里妹导读:API 是模块或者子 ...

  6. Request Entity Too Large for Self Hosted ASP.Net Web API在Selfhost的api后台怎么解决Request Entity Too Large问题

    Request Entity Too Large for Self Hosted ASP.Net Web API在Selfhost的api后台怎么解决Request Entity Too Large问 ...

  7. 使用 WSO2 API Manager 管理 Rest API

    WSO2 API Manager 简介 随着软件工程的增多,越来越多的软件提供各种不同格式.不同定义的 Rest API 作为资源共享,而由于这些 API 资源的异构性,很难对其进行复用.WSO2 A ...

  8. Zookeeper C API 指南四(C API 概览)(转)

    上一节<Zookeeper C API 指南三(回调函数)>重点讲了 Zookeeper C API 中各种回调函数的原型,本节将切入正题,正式讲解 Zookeeper C API.相信大 ...

  9. Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api。。扩展点

    Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api..扩展点 1. Api分类 WordPress APIs1 1.1. 1 函数分类2 1.2. 函数api ...

随机推荐

  1. ISOMAP和MDS降维

    转载自https://blog.csdn.net/victoriaw/article/details/78497316 核心:测地线距离(dijstra最短路径获得).MDS降维 Isomap(Iso ...

  2. Mint-UI Picker 三级联动

    Mint-UI Picker组件的三级联动 HTML: <mt-picker :slots="slots" value-key="name" @chang ...

  3. Python中的eval(),exec()以及其相关函数

    1. eval函数 函数的作用: 计算指定表达式的值.也就是说它要执行的Python代码只能是单个运算表达式(注意eval不支持任意形式的赋值操作),而不能是复杂的代码逻辑,这一点和lambda表达式 ...

  4. Scrapy 框架简介

    Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的 ...

  5. fast ai-lesson 1 报错解决方法(正则表达式提取文件名)

    在运行fast ai lesson 1的代码的时候,运行到的时候报错了 data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfm ...

  6. [powershell]获取FCID&Port

    Get-InitiatorID Get-InitiatorPort

  7. java实现 链表反转

    输入一个链表,反转链表后,输出新链表的表头. 递归法 public class RevnNode { public static class Node { public int value; publ ...

  8. element-UI的Dialog弹出框蒙版被遮住

    类似于这种,相信会有很多人遇到这种问题的,其实解决的方法很简单 <el-dialog title="修改分类" :visible.sync="modifyFormV ...

  9. mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)

    mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES) 解 ...

  10. dataTable 实战总结

    后台项目中经常会用到 dataTable 进行表格的智能绘制:总结一下项目中经常用到的 dataTable 设置 1.dataTable 属性设置: autoWidth: true, // 是否自动计 ...