通过第三方工具体验Microsoft Graph
作者:陈希章 发表于 2017年3月22日
上一篇文章我介绍了如何利用官方提供的Graph 浏览器快速体验Microsoft Graph强大功能,这是极好的起点。官方的Graph浏览器力图用最简单的方式帮助您使用Microsoft Graph,为此也隐藏了很多细节。为了帮助大家更好地理解Microsoft Graph的工作原理,例如要使用Microsoft Graph需要进行应用改程序注册,OAuth的过程以及Token传递的方式等,我专门再写一篇,介绍如何通过其他第三方工具来体验Microsoft Graph。
我们可以在网络上找到很多进行REST API调用和测试的工具,这一篇我给大家演示的是一款叫POSTMAN的工具。它的官方主页在 https://www.getpostman.com/,提供了针对MacOS,Windows,Linux的版本,也提供了Chrome的插件,你可以按需下载。
POSTMAN 有免费版和专业版,就本文的需求来说,免费版就够用了。
为了能通过POSTMAN来调用Microsoft Graph,我们必须按照Microsoft Graph概述中介绍的三部曲,首先要注册一个应用程序。
注册应用程序
我会有专门的文章来讲解注册应用程序的细节,本文将演示一个注册好的应用程序,如果你不想自己注册,也可以用我的信息进行测试。
你可以通过Microsoft 账号登录https://apps.dev.microsoft.com/#/, 注册一个应用程序,需要提供名称,并且声称一个秘钥,然后制定对应的平台,申请必要的权限。
发起POSTMAN请求
打开POSTMAN,默认情况下,如果去调用Microsoft Graph,因为没有提供身份,会返回如下的错误信息
这很容易理解,我们接下来要做就是为POSTMAN添加OAuth的认证。选择上图中"Authorization"这个选项卡中的Type为“OAuth 2.0", 然后点击“Get New Access Token"按钮,在弹出的对话框中填写你注册好的应用程序信息。
如果你在此前的注册应用程序中遇到障碍,请直接使用我准备好的测试应用程序信息:
Auth URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Access Token URL: https://login.microsoftonline.com/common/oauth2/v2.0/token
ClinetID: 61df125c-f335-448e-8110-e6ab785a85f3
Client Secret: uCs9wjhyZok9EULEVPcjAfW
Scope: user.read mail.read mail.send
点击上图中的“Request Token”按钮,POSTMAN会弹出跳转到Microsoft Graph的认证页面,此时你可以输入Office 365的账号信息。
如果你输入了合法的账号信息,接下来应用程序将会请求你的授权
点击上图中的“Accept”按钮,正常情况下会关闭所有弹出的窗口,并且返回到POSTMAN的主界面,你现在就可以查看到当前申请得到的访问凭据(Access Token)了。
这里特别提一下,我发现有时候同样的操作却不能成功,可能受到一些网络方面的干扰因素吧,请大家遇到这种情况的话,耐心地重试一两次。
点击最右侧的“Use Token"按钮,可以将Access Token插入到当前的请求中去,注意观察“Headers”这个选项卡的变化 (Authorization:Bearer xxxxxxxxx),然后点击“Send”按钮,我们就可以顺利地完成当前的Microsoft Graph调用了。
请注意确保“Add token to” 这里选择“Header”
看起来不错吧?你是不是会说,这看起来也跟Graph 浏览器差别不大啊。是的,到目前为止,这都属于最基本的操作,接下来我介绍一下POSTMAN的一些亮点功能。
- 保存请求
- 对请求进行测试
保存请求
这是首先吸引我的功能,也是很自然的需求:如果能把上面的请求设置保存起来,那么下一次我就可以直接使用而不需要重复地去输入了。
点击上图中的最右侧的“Save”按钮,然后在弹出的对话框中输入Request Name等信息即可。
在保存请求的时候,我们还可以将其归类到一个集合(collection)中去。(如果你还没有创建集合,则可以选择创建一个新的集合)
我这里将几个常见的请求保存成了一个Office 365 devlab的集合,如下图所示
对请求进行测试
POSTMAN还有一个较有意思的功能,就是支持对一个集合的请求进行测试。点击上图左上角的“Runner”,在弹出的窗口中选择一个保存好的collection,进行一些简单的参数设置后,点击“Start Test”按钮,它会依次发起集合中的请求,并且将返回结果一一显示。
POSTMAN 还有命令行工具,可以便于脚本化进行测试,限于篇幅本文就不做展开了。
POSTMAN的专业版还有一些高级功能,例如团队协作之类的,有兴趣的朋友可以自行尝试。
结语
POSTMAN是一个不错的第三方工具,在同类的REST API 客户端工具中的优势在于图形化界面比较友好,而且对OAuth的强大支持,同时它还可以保存请求并且进行批量测试,这将为我们体验Micrsooft Graph打开一扇方便之门,并且也有助于更好地理解Microsoft Graph的工作原理。
通过第三方工具体验Microsoft Graph的更多相关文章
- 通过Graph 浏览器体验Microsoft Graph
作者:陈希章 发表于 2017年3月18日 上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么? 为了帮助开发人员直观和快速体验Mi ...
- 转:与Microsoft Visual Studio集成良好的第三方工具
我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...
- Microsoft Graph Web应用程序极致开发体验
作者:陈希章 重写于 2017年5月24日 前言 这篇文章最早写于2017年5月2日,当时的想法是从最简单的方式来写如何在一个ASP.NET MVC应用程序中集成Microsoft Graph,但实际 ...
- Unity3D所使用的第三方工具
前言 最近在研究Unity3D的结构和原理.关于Unity3D怎么用之类的教程在网上一找一大堆,想看教程之类的就不用看这篇文章了.我想做的是从使用Unity3D所看到的表象(表),摸透其设计原则和组织 ...
- 跨平台应用集成(在ASP.NET Core MVC 应用程序中集成 Microsoft Graph)
作者:陈希章 发表于 2017年6月25日 谈一谈.NET 的跨平台 终于要写到这一篇了.跨平台的支持可以说是 Office 365 平台在设计伊始就考虑的目标.我在前面的文章已经提到过了,Micro ...
- Microsoft Graph API -----起题 Graph API
最近因为工作需要,接触学习使用了Microsoft Graph API.在看完Microsoft的Graph官方文档之后,也做了一些简单的案例,在Stack Overflow上做过一些回答.整体来说, ...
- js之第三方工具解析JSON
1.JSON 仅仅是一种文本字符串.它被存储在 responseText 属性中 为了读取存储在 responseText 属性中的 JSON 数据,须要依据 JavaScript 的 eval 函数 ...
- 在无人值守程序(服务)中调用Microsoft Graph
作者:陈希章 发表于 2017年5月31日 什么是无人值守程序(服务) 我在此前用了几篇文章分别介绍了在桌面应用程序(控制台),Web应用程序(ASP.NET MVC),以及PowerSehll脚本中 ...
- 基于Microsoft Graph打造自己的Timeline应用
原文链接:https://github.com/chenxizhang/office365dev/blob/e9b5a59cb827841d36692cc4ec52c11d43062e04/docs/ ...
随机推荐
- Python 解LeetCode:367. Valid Perfect Square
题目描述:给出一个正整数,不使用内置函数,如sqrt(),判断这个数是不是一个数的平方. 思路:直接使用二分法,貌似没啥好说的.代码如下: class Solution(object): def is ...
- 教你五步制作精美的HTML时钟
学了一段时间的HTML.CSS和JS后,给大家做一款漂亮的不像实力派的HTML时钟,先看图:涉及到的知识点有: CSS3动画.DOM操作.定时器.圆点坐标的计算(好多人是不是已经还给自己的老师了~) ...
- pandas基本介绍-【老鱼学pandas】
前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号 ...
- 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)
Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...
- TensorFlow[1]:概念和简例
简介 TensorFlow是一个实现机器学习算法的接口,也是执行机器学习算法的框架.使用数据流式图规划计算流程,可以将计算映射到不同的硬件和操作系统平台. 主要概念 TensorFlow的计算可以表示 ...
- Chapter 7:Linking
概述: 在linux上,从c源码到可执行文件主要需要经历translator(compiler.assembler)生成object file,再经由linker连接成executable objec ...
- sockt套接字编程
一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
原因:同事在写demo时出现bean加了@component后却无法被spring扫描到(在编译的时候IDEA就提示拿不到对应的bean)的问题. 后来经过研究是跟文件包的位置有关的. springb ...
- Linq学习系列-----1.2 一个简单方法的改进思考及不同的执行形式
一.普通模式: #region 模式1 public Form1() { InitializeComponent(); GetProcessByJudge(); } public bool Memor ...
- LinuxRPM包安装
转载注明出处:原文地址 ## LinuxRPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(ins ...