作者:陈希章 发表于 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. postgis几何操作函数集

    管理操作函数 AddGeometryColumn - Adds a geometry column to an existing table of attributes. By default use ...

  2. js 切换全屏

    公司有一个需求就是点击某一个按钮实现全屏切换功能,然后呢我就在网上扒了段代码.封装了一下.使用的小伙伴们可以看看哦! 切换全屏代码 <!DOCTYPE html> <html> ...

  3. cursor() — 数据库连接操作 python

    python 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了.      ...

  4. Mysql 用法

    一转眼,一个星期过去了,来到测试班也一个星期了,今天经历了一次,这是自己这一周的总结,也算对自己这一周的一个交代. 几个比较重要的语句: 查看数据库 show databases; 创建数据库 cre ...

  5. cookie 操作(转载)

    /** * Create a cookie with the given name and value and other optional parameters. * * @example $.co ...

  6. 《用Java写一个通用的服务器程序》02 监听器

    在一个服务器程序中,监听器的作用类似于公司前台,起引导作用,因此监听器花在每个新连接上的时间应该尽可能短,这样才能保证最快响应. 回到编程本身来说: 1. 监听器最好由单独的线程运行 2. 监听器在接 ...

  7. 《Java并发编程》之线程中断与终止线程运行

    Java中启动一个线程很容易,通常情况下我们都是等到任务运行结束后让线程自行停止.但有时需要在任务正在运行时取消他们,使得线程快速结束.对此Java并没有提供任何机制.但是我们可以通过Java提供的线 ...

  8. laravel中with()方法,has()方法和whereHas()方法的区别

    with() with()方法是用作"渴求式加载"的,那主要意味着,laravel将会伴随着主要模型预加载出确切的的关联关系.这就对那些如果你想加在一个模型的所有关联关系非常有帮助 ...

  9. LINQ学习系列-----2.2 迭代器

    在学习本篇迭代器之前,强烈建议可以先学习一位具有工匠精神博主的文章,链接如下: 农码一生---先说IEnumerable,我们每天用的foreach你真的懂它吗? 本篇文章,是在该博主博文的基础上再次 ...

  10. 一个页面tab标签切换,都有scroll事件的解决办法

    当前页有多个tab,如果都有scroll事件, 先解绑$(window).off('scroll') 再执行scroll就不可以了,多个标签就不会互相干扰: 给你们个例子: //标签切换    $(' ...