作者:陈希章 发表于 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. Python 解LeetCode:367. Valid Perfect Square

    题目描述:给出一个正整数,不使用内置函数,如sqrt(),判断这个数是不是一个数的平方. 思路:直接使用二分法,貌似没啥好说的.代码如下: class Solution(object): def is ...

  2. 教你五步制作精美的HTML时钟

    学了一段时间的HTML.CSS和JS后,给大家做一款漂亮的不像实力派的HTML时钟,先看图:涉及到的知识点有: CSS3动画.DOM操作.定时器.圆点坐标的计算(好多人是不是已经还给自己的老师了~)  ...

  3. pandas基本介绍-【老鱼学pandas】

    前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号 ...

  4. 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)

    Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...

  5. TensorFlow[1]:概念和简例

    简介 TensorFlow是一个实现机器学习算法的接口,也是执行机器学习算法的框架.使用数据流式图规划计算流程,可以将计算映射到不同的硬件和操作系统平台. 主要概念 TensorFlow的计算可以表示 ...

  6. Chapter 7:Linking

    概述: 在linux上,从c源码到可执行文件主要需要经历translator(compiler.assembler)生成object file,再经由linker连接成executable objec ...

  7. sockt套接字编程

    一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...

  8. 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包

    原因:同事在写demo时出现bean加了@component后却无法被spring扫描到(在编译的时候IDEA就提示拿不到对应的bean)的问题. 后来经过研究是跟文件包的位置有关的. springb ...

  9. Linq学习系列-----1.2 一个简单方法的改进思考及不同的执行形式

    一.普通模式: #region 模式1 public Form1() { InitializeComponent(); GetProcessByJudge(); } public bool Memor ...

  10. LinuxRPM包安装

    转载注明出处:原文地址 ## LinuxRPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(ins ...