作者:陈希章 发表于 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的一些亮点功能。

  1. 保存请求

  2. 对请求进行测试

保存请求

这是首先吸引我的功能,也是很自然的需求:如果能把上面的请求设置保存起来,那么下一次我就可以直接使用而不需要重复地去输入了。

点击上图中的最右侧的“Save”按钮,然后在弹出的对话框中输入Request Name等信息即可。

在保存请求的时候,我们还可以将其归类到一个集合(collection)中去。(如果你还没有创建集合,则可以选择创建一个新的集合)

我这里将几个常见的请求保存成了一个Office 365 devlab的集合,如下图所示


对请求进行测试

POSTMAN还有一个较有意思的功能,就是支持对一个集合的请求进行测试。点击上图左上角的“Runner”,在弹出的窗口中选择一个保存好的collection,进行一些简单的参数设置后,点击“Start Test”按钮,它会依次发起集合中的请求,并且将返回结果一一显示。


POSTMAN 还有命令行工具,可以便于脚本化进行测试,限于篇幅本文就不做展开了。

POSTMAN的专业版还有一些高级功能,例如团队协作之类的,有兴趣的朋友可以自行尝试。

结语

POSTMAN是一个不错的第三方工具,在同类的REST API 客户端工具中的优势在于图形化界面比较友好,而且对OAuth的强大支持,同时它还可以保存请求并且进行批量测试,这将为我们体验Micrsooft Graph打开一扇方便之门,并且也有助于更好地理解Microsoft Graph的工作原理。

通过第三方工具体验Microsoft Graph的更多相关文章

  1. 通过Graph 浏览器体验Microsoft Graph

    作者:陈希章 发表于 2017年3月18日 上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么? 为了帮助开发人员直观和快速体验Mi ...

  2. 转:与Microsoft Visual Studio集成良好的第三方工具

    我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...

  3. Microsoft Graph Web应用程序极致开发体验

    作者:陈希章 重写于 2017年5月24日 前言 这篇文章最早写于2017年5月2日,当时的想法是从最简单的方式来写如何在一个ASP.NET MVC应用程序中集成Microsoft Graph,但实际 ...

  4. Unity3D所使用的第三方工具

    前言 最近在研究Unity3D的结构和原理.关于Unity3D怎么用之类的教程在网上一找一大堆,想看教程之类的就不用看这篇文章了.我想做的是从使用Unity3D所看到的表象(表),摸透其设计原则和组织 ...

  5. 跨平台应用集成(在ASP.NET Core MVC 应用程序中集成 Microsoft Graph)

    作者:陈希章 发表于 2017年6月25日 谈一谈.NET 的跨平台 终于要写到这一篇了.跨平台的支持可以说是 Office 365 平台在设计伊始就考虑的目标.我在前面的文章已经提到过了,Micro ...

  6. Microsoft Graph API -----起题 Graph API

    最近因为工作需要,接触学习使用了Microsoft Graph API.在看完Microsoft的Graph官方文档之后,也做了一些简单的案例,在Stack Overflow上做过一些回答.整体来说, ...

  7. js之第三方工具解析JSON

    1.JSON 仅仅是一种文本字符串.它被存储在 responseText 属性中 为了读取存储在 responseText 属性中的 JSON 数据,须要依据 JavaScript 的 eval 函数 ...

  8. 在无人值守程序(服务)中调用Microsoft Graph

    作者:陈希章 发表于 2017年5月31日 什么是无人值守程序(服务) 我在此前用了几篇文章分别介绍了在桌面应用程序(控制台),Web应用程序(ASP.NET MVC),以及PowerSehll脚本中 ...

  9. 基于Microsoft Graph打造自己的Timeline应用

    原文链接:https://github.com/chenxizhang/office365dev/blob/e9b5a59cb827841d36692cc4ec52c11d43062e04/docs/ ...

随机推荐

  1. 使用javax.script包实现Java设置JS脚本中的变量

    下面例子中,我们通过javax.script包ScriptEngine.put()方法设置JS脚本中的变量,JS把所有在线用户输出. package ajava.code.javase; import ...

  2. Eclipse的几个常用快捷键

    键盘操作 功能 Alt + /    语句或变量名自动补全 Ctrl + Shift + F 语句格式化 Ctrl + / 单行注释(或取消单行注释) Ctrl + Shift + /   多行注释 ...

  3. Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

    Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...

  4. 深入学习JS执行--创建执行上下文(变量对象,作用域链,this)

    一.介绍 本篇继上一篇深入理解js执行--单线程的JS,这次我们来深入了解js执行过程中的执行上下文. 本篇涉及到的名词:预执行,执行上下文,变量对象,活动对象,作用域链,this等 二.预执行 在上 ...

  5. IMDB TOP 250爬虫

    这个小学期Python大作业搞了个获取IMDB TOP 250电影全部信息的爬虫.第二次写爬虫,比在暑假集训时写的熟练多了.欢迎大家评论. ''' ************************** ...

  6. EntityFramework6与EntityFrameworkCore的区别

    EntityFramework6 EF6 是一个久经考验的数据库访问技术,发展多年,拥有许多特性,并且成熟稳定.2008年EF作为 .Net 3.5 Sp1 和Visual Studio 2008 S ...

  7. Android Weekly Notes Issue #285

    November 26th, 2017 Android Weekly Issue #285 本周包含好几篇Kotlin的文章,如通过Property Delegate实现SharedPreferenc ...

  8. 用echartsjs 实现散点图与table表格双向交互,以及实现echarts取自于table数据,和自定义echarts提示内容

    本人研究echarts已经有一段时间了,今天就分享几个关于echarts的小技巧.虽然看起来简单,但做起来却很繁琐,不过实用性倒是很好. 在一个大的页面中,左边为table表格,右边为echarts的 ...

  9. StringUtils工具类常用方法汇总2(截取、去除空白、包含、查询索引)

      在上一篇中总结了StringUtils工具类在判断字符串为空,大小写转换,移除字符或字符序列,替换,反转,切割合并等方面的方法,这次再汇总一下其它常用的方法. 一.截取   StringUtils ...

  10. 已有模板与tp框架结合

    具体实现步骤: ①复制模板文件到view指定文件目录: ②复制css.js.img到view指定文件目录: ③把静态资源(css.js.img)文件的路径设置为“常量”信息(在index.php入口文 ...