zoukankan      html  css  js  c++  java
  • GraphHttpClient概述

    博客地址:http://blog.csdn.net/FoxDave

    目前这个东西还在预览阶段,所以不推荐在正式生产环境中使用。

    我们可以使用Microsoft Graph接口来构建强大的解决方案来访问Office 365和其他微软服务的数据。为了使SPFx的解决方案能够连接到Microsoft Graph,你需要注册一个Azure AD应用程序并完成授权流。为了简化这个过程,GraphHttpClient出现了,通过使用它,你可以直接调用Microsoft Graph接口而不需要其他额外的设置。

    GraphHttpClient类是什么?

    GraphHttpClient类作为SharePoint Framework的一部分包含在其中。它的工作方式跟HttpClient类似,你可以使用它来跟第三方应用程序接口通信。该类会自动确保你对Microsoft Graph的请求拥有有效的访问令牌和必须的请求头。当你发出一个GET或POST请求时,GraphHttpClient会验证它是否拥有一个有效的访问令牌,如果没有它将会从内部API获取一个并保存下来用于接下来的请求。

    下面的代码演示了使用GraphHttpClient类访问Microsoft Graph接口。

    // ...
    import { GraphHttpClient, GraphClientResponse } from '@microsoft/sp-http';
    
    export default class MyApplicationCustomizer
      extends BaseApplicationCustomizer<IMyApplicationCustomizerProperties> {
    
      // ...
    
      @override
      public onRender(): void {
        this.context.graphHttpClient.get("v1.0/groups?$select=displayName", GraphHttpClient.configurations.v1)
          .then((response: GraphClientResponse): Promise<any> => {
            return response.json();
          })
          .then((data: any): void => {
            // ...
          });
      }
    }

    向Microsoft发送请求,需要以下几个步骤:

    1. 从@microsoft/sp-http包引入GraphHttpClient和GraphClientResponse模块。

    2. 使用this.context.graphHttpClient属性作为该类的实例来发送请求道Microsoft Graph。

    3. 指定想要调用的Microsoft Graph API(从版本开始,不带前面的斜杠/)。

    4. 你还可以指定额外的请求头,这些会跟GraphHttpClient设置的默认头进行合并。

    使用GraphHttpClient类需要考虑的事情

    GraphHttpClient类提取了授权流和访问令牌的管理,使得访问Microsoft Graph更加便捷。由于现在正处于开发预览版,在使用它的过程中你需要注意以下一些事情。

    仅用来访问Microsoft Graph接口

    使用GraphHttpClient类仅能访问Microsoft Graph。URL必须如前所述指定为以Microsoft Graph API版本开头,加上API操作的URL,任何不符合此条件的URL都会返回一个错误。

    权限

    GraphHttpClient使用Office 365 SharePoint Online的Azure AD应用程序来获取有效的访问令牌,该令牌代表当前用户。获取来的访问令牌有两个权限:读写所有组(Group.ReadWrite.All)和读取所有使用率报告(Reports.Read.All)。

    注意仅有这两个权限,因此如果你需要其他的权限,你就需要使用ADAL JS with implicit OAuth flow来代替它。

    访问令牌通过内部API获得

    GraphHttpClient通过发起一个web请求到/_api/SP.OAuth.Token/Acquire端点来获得有效的访问令牌。对外是不公开的,也就是说你是无法在你的解决方案中直接与它通信的。

  • 相关阅读:
    Query实例的ajax应用之二级联动的后台是采用php来做的
    关于jquery的css的一些知识
    这个代码给所有带有name属性的链接加了一个背景色
    jQuery生成一个DIV容器,ID是"rating".
    被included或者被required的文件都来自哪里呢
    msql_createdb: 建立一个新的 mSQL 数据库。
    php中调用这个功能可以在web页面中显示hello world这个经典单词
    啦啦啦测试心得
    maven命令
    robotframework使用
  • 原文地址:https://www.cnblogs.com/justinliu/p/8443658.html
Copyright © 2011-2022 走看看