【转】通过Graph 浏览器体验Microsoft Graph

上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么?

为了帮助开发人员直观和快速体验Microsoft Graph的魅力,官方提供了一个专门的工具,叫做Graph 浏览器(Graph Explorer)。同时,由于国际版和世纪互联版本的Graph接口相关地址有所不同,所以针对这两个不同的版本,分别有对应的Graph浏览器。

  1. 国际版Graph 浏览器: https://developer.microsoft.com/zh-cn/graph/graph-explorer
  2. 世纪互联版 Graph 浏览器: https://developer.microsoft.com/zh-cn/graph/graph-explorer-china

本文将以国际版Graph 浏览器作为演示。两者的功能及使用流程基本类似,具体的差异在于世纪互联版的某些接口还在快速开发中。关于两者的细微差别,请随时可以通过https://developer.microsoft.com/zh-cn/graph/docs/concepts/deployments 进行了解。

下面将简单演示五个场景,帮助大家理解Microsoft Graph API及其工作原理。

 

登录Graph 浏览器

Graph浏览器

点击上图中的“登录”按钮,使用国际版Office 365账号进行登录。请注意,我在此前的文章中已经介绍了如何申请一个为期一年的Office 365开发者订阅。

 

Graph浏览器登录

输入正确的账号和密码后,点击确定,系统将引导用户进行授权确认,如下图所示

 

Graph浏览器身份授权

 

只有你自己点击了“接受”按钮,Graph 浏览器才能真正访问到你的数据。上面这个授权方式,其实就是所谓的OAuth的标准机制:Graph 浏览器作为一个独立的应用,它并不需要保存你的Office 365账号信息,它可以得到用户授权之后代表用户去访问到Graph后台所连接的资源,包括Office 365的数据。

查询当前用户的基本信息

完成授权登录后,我们就可以愉快地使用Microsoft Graph的服务了。首先,下图示例了如何获取当前用户的基本信息。

 查询当前用户的基本信息

Microsoft Graph的服务是RESTful的,具体表现在发起服务请求,只需要一个Url即可(本例为https://graph.microsoft.com/v1.0/me/),使用的方式也是标准的Http方法(GET,POST等),与此同时,它的返回结果是业界应用最广的Json格式。

查询当前用户的个人网盘文件列表

通过 https://graph.microsoft.com/v1.0/me/drive/root/children ,点击“转到”,可以查询当前用户的个人网盘(OneDrive for Business)文件列表。

 

查询当前用户的个人网盘文件列表

 

查询当前用户的收件箱前10条邮件信息

使用Microsoft Graph,在得到用户授权的前提下,应用程序可以读取到用户的邮件列表,所使用的服务请求地址是 https://graph.microsoft.com/v1.0/me/messages

 

获取用户的邮件列表

默认情况下,这个查询只会返回前10条邮件信息,并且不区分邮件目录,如果需要获取特定邮箱目录的邮件信息,请参考下面这样的语法

https://graph.microsoft.com/v1.0/me/mailFolders/**inbox**/messages

如果想要对返回结果集做筛选,排序,请参考下面这样的语法

  1. 只选择前五封邮件 https://graph.microsoft.com/v1.0/me/messages?$top=5
  2. 跳过前五封邮件选择十封邮件 https://graph.microsoft.com/v1.0/me/messages?$skip=5&take=10
  3. 按照发件人邮件地址排序 https://graph.microsoft.com/v1.0/me/messages?$orderby=from/emailAddress/address

更多查询参数,请参考https://developer.microsoft.com/zh-cn/graph/docs/overview/query_parameters

发送邮件

上面演示了几个场景都是查询,实际上Microsoft Graph的功能远远不止是做查询,它也可以在用户授权下进行某些操作,例如接下来要演示的发送邮件。

这里需要用到的API是https://graph.microsoft.com/v1.0/me/sendmail,这个接口需要使用POST方法调用,你要发送的邮件内容通过Json格式进行定义。

{"message": {"subject":"Welcome to Microsoft Graph","body": {"contentType": "Text","content": " Welcome to Microsoft Graph world."},"toRecipients": [{"emailAddress": {"address": "ares@office365devlabs.onmicrosoft.com"}}],"ccRecipients": [{"emailAddress": {"address": "ares@xizhang.com"}}]},"saveToSentItems": "true"
}

发送邮件

如果发送成功的话,返回状态码为200,反之,则会有详细的错误信息。

结语

本文我介绍了利用Graph 浏览器快速体验Microsoft Graph的强大功能。以上只是举了几个常见的例子,如何用支持的功能很多,等待你的发现,常见的查询请参考下图

更多场景

陈希章 《Office 365开发入门指南》作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】wpf和winform的区别

WinForm是Net开发平台中对Windows Form的一种称谓。 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计…

sqoop(数据迁移工具)-安装-学习

sqoop 1)概述 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数…

Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Py…

错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty

打开bin下的flume-ng 找到下面,添加红色框内容,即可 如果还有有关hbase的同样的错误(因为hadoop与hbase版本不兼容,更换我这里hadoop-2.7.7,hbase-2.0.6(一开始是2.1.5会出现这个错误)&#xff…

flume学习-含安装

1.Flume是什么:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 Flume组成架构 下面我们来详细介绍一下Flume架构中的组件。 1) Agent&#xff1…

【转】使用Azure Rest API获得Access Token介绍

1. 前言 本文主要描述了以java应用为客户端,使用Azure Rest接口的认证过程,帮助快速完成使用Azure Rest接口的第一步。 2. 读者 本文适合开发人员、IT运维人员阅读。 3. 方案架构说明 在我负责的某大型国企客户提出的混合云战略是:不仅要…

Flume-ng 高可用搭建-与测试

前提: 1)五台虚拟机(三台也可以) 2)flume单节点测试并学会 3)hadoop集群搭建完成 Flume NG集群,架构图 Flume的存储可以支持多种,这里只列举了HDFS 角色分配 名称HOST角色Agent1chun1Web ServerAgent2chun2Web Ser…

【转】D365 FO第三方集成(一)---访问认证(应用注册)

从Axapta3.0的COM Business Connector,到AX4.0和AX2009的 .NET Business Connector,到AX2012的WCF Services,最后到D365FO的接口方式。 AX的接口演化,几乎见证了微软整个技术栈的变迁。 D365 FO的Web Services比起AX2012有了飞跃&…

【转】Postman系列一:Postman安装及使用过程中遇到的问题

一:Postman的简介、下载安装及界面说明 1.Postman的简单介绍 Postman是一款强大的网页调试和发送网页HTTP请求的工具,Postman让开发和测试人员做API(接口)测试变得更加简单。在我使用Postman之前还有一个版本,就是需要…

Python 数据分析三剑客之 Pandas(十):数据读写

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Py…

COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图)

文章目录【1x00】前言【2x00】思维导图【3x00】数据结构分析【4x00】主函数 main()【5x00】数据获取模块 data_get【5x01】初始化函数 init()【5x02】中国总数据 china_total_data()【5x03】全球总数据 global_total_data()【5x04】中国每日数据 china_daily_data()【5x05】境外…

【转】Postman系列二:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作)

一:接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性。 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保…

Python3 爬虫实战 — 前程无忧招聘信息爬取 + 数据可视化

爬取时间:2020-07-11(2020年10月测试,增加了反爬,此代码已失效!!!)实现目标:根据用户输入的关键字爬取相关职位信息存入 MongoDB,读取数据进行可视化展示。涉…

【转】Postman系列三:Postman中post接口实战(上传文件、json请求)

一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据; 2.Get安全性比Post低:Get将表单中数据的按照keyvalue的形式…

Hadoop datanode正常启动,但是jps差不多datanode进程,而且Live nodes中却缺少节点

启动时可以看到启动成功,但是在chun2,jps的时候却没有了datanode进程,而且web端Live nodes也缺少了 百度搜索之后查到是因为hdfs.site.xml配置文件里dfs.data.dir配置的路径重复,就是多个节点存放data数据的目录路径相同了&#x…

【转】Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件

一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到。 全局变量的设置:官网参考https://learning.getpostman.com/docs/postman/environments_and_glob…

Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现

文章目录递归概念递归要素递归与迭代的区别示例一:阶乘示例二:斐波那契数列示例三:汉诺塔问题尾递归Python 中尾递归的解决方案递归概念 递归:程序调用自身的编程技巧称为递归( recursion)。用一种通俗的话…

【转】Postman系列五:Postman中电商网站cookie、token检验与参数传递实战

一:Postman中电商网站cookie实战 Postman接口请求使用cookie两种方式: 1.直接在header(头域)中添加cookie,适用于已知请求cookie头域的情况 2.使用Postman的cookie管理机制,即可以手动添加,同时…

Python 数据结构之栈的实现

文章目录栈的概念栈的特点栈的操作Python 实现栈栈的简单应用:括号匹配问题栈的简单应用:倒序输出一组元素栈的概念 栈(stack)又名堆栈,栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据&…

CSDN 2020 博客之星实时数据排名(Python 爬虫 + PyEcharts)

CSDN 2020 博客之星实时数据排名:csdn.itrhx.com CSDN 一年一度的博客之星评选开始了,官网地址:https://bss.csdn.net/m/topic/blog_star2020 ,由于官网是按照随机编号排序的,没有按照票数多少排序,为了方便…