最近因为工作需要,接触学习使用了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. mysql-SELECT子句的顺序

  2. Tenka1 Programmer Contest 2019

    C:即要使前一部分为白色后一部分为黑色,枚举分割点前缀和计算答案取min即可. #include<bits/stdc++.h> using namespace std; #define l ...

  3. Gradle+IDEA使用说明

    Gradle+IDEA使用说明 导语: IDEA拥有大量的JAVA开发者拥护,相比于开源的eclipse,IDEA拥有更简洁直观的界面,拥有更强大的自动补全功能,号称能“一路敲回车完成编码”.如果把I ...

  4. 【CSA35G】【XSY3318】Counting Quests DP 拉格朗日反演 NTT

    题目大意 zjt 是个神仙. 一天,zjt 正在和 yww 玩猜数游戏. zjt 先想一个 \([1,n]\) 之间的整数 \(x\),然后 yww 开始向他问问题. yww 每次给 zjt 一个区间 ...

  5. Python 练习——计算1-2+3-4...+99

    # 求1-99的所有数的和 count = 1 s = 0 while count < 100: s += count count += 1 print(s) 当都为正数时,即1+2+3+... ...

  6. 一本通 一笔画问题 洛谷P1636 Einstein学画画

    P1636 Einstein学画画 相信大家都玩过一笔画这种游戏吧,这其实算得上是我们能够接触到的比较常见的数学问题,有一个很知名的就是七桥问题 这个问题包括所有的一笔画问题都是在欧拉回路的涵盖范围内 ...

  7. PHP 消息队列 详解

    前言:之前做过的一些项目中有时候会接触到消息队列,但是对消息队列并没有一个很清楚的认知,本篇文章将会详细分析和归纳一些笔记,以供后续学习. 一.消息对列概念 从本质上说消息对列就是一个队列结构的中间件 ...

  8. 3194. 【HNOI模拟题】化学(无标号无根树计数)

    Problem 求\(n\)个点的每个点度数不超过\(4\)的无标号无根树个数. Data constraint \(1\le n\le 500\) Solution 尝试着把问题一般化.我们来考虑一 ...

  9. 使用cert-manager实现Ingress https

    什么是https 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报 ...

  10. 关于std::cin阻塞事件循环以及控制台命令输入功能的方案;

    如果将std::cin建立在主线程,将阻塞主线程的所有事件循环,因而要保证事件循环不受影响,需要将std::cin放到 子线程中.同时,如果要实现能够强制终止std::cin阻塞, 可以通过强制终止线 ...