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端点来获得有效的访问令牌。对外是不公开的,也就是说你是无法在你的解决方案中直接与它通信的。

  • 相关阅读:
    Making a CocoaPod
    关于Http
    The podfile
    iOS 8个实用小技巧(总有你不知道的和你会用到的)
    关于深拷贝浅拷贝
    适配ios10(iTunes找不到构建版本)
    iOS 10 推送的简单使用
    __block 和 __weak的区别
    Masonry使用注意事项
    iOS数字键盘自定义按键
  • 原文地址:https://www.cnblogs.com/justinliu/p/8443658.html
Copyright © 2011-2022 走看看