如何通过易企办的HTTP Request操作SharePoint 数据

介绍如何在易企办的流程设计器中,通过HTTP Request节点调用SharePoint的操作接口,实现易企办与SharePoint之间的双向的访问与操作。

1. 准备工作 – 创建Azure应用

  • 选择 App Registrations ,新建一个App,(你也可以使用现有)如图:HttpRequest Test

  • 你要找到你的:Application (client) ID:0fab5633-08d4-41c8-ae82-6b07681d1c9a,以及租户ID。

  • 在Authentication中设置 只允许自己商户使用。

  • 在Certificates & secrets创建一个秘钥,一定要记住秘钥,保存以后不能在看见,忘记了就删除原有的,重新创建一个。注意保密!

  • 在API permissions 中新增API权限,例如我添加的是去操作SharePoint List。

  • 在添加完毕以后,需要带管理员来同意后台程序来请求接口。同意以后就就可以配置Yeeflow流程了。

2. 配置流程或列表流程

我们在操作SharePoint过程走的Graph API。所有有关Graph API 怎么去操作SharePoint 请参考: Overview of Microsoft Graph - Microsoft Graph | Microsoft Docs

我这里采用的是列表流程配置过程如下:

首先我建立了一个采购订单的列表如图,由于数据要写入要SharePoint List,所有我多新建了一列叫做ItemID.用于存储SharePoint List 数据ID,方便后面更新数据。

3. 配置流程

首先我们定义变量,如下图,新建Complex type Definitions 定义,

  1. 新建TokenLResponse对象,里面分别有:access_token、token_type、expires_in等字段,根据对应的接口的返回值。用于存储请求API的Token。
  2. 新建ListResponse对象,里面只有存储 id,用户新增数据以后ItemID存储。
  3. 新建TokenHeader对象,里面只有 Content-Type,用户请求接口的时候定义application/x-www-form-urlencoded
  4. 新建ListHeader对象,里面Authorization和Content-Type,用户请求接口的时候传递 Token和HTTPHeader。

新建好了对象定义,我们开始新建Variables,并且如下图选择好数据类型以及定义。

4. 配置流程图

5. 配置Set content-type header 节点

如下保存

设置TokenHeader=> Content-Type=> application/x-www-form-urlencoded

6. 配置get access_token节点

Address:

Sign in to your account ,红色部分为您商户的ID,参考新建Azure app哪里可以看到。

Method: Post,

**Auth Type:**No authentication

HttpHeader:选择刚才定义的TokenHeader

Data:

client_id=APPID&client_secret=APPSECRET&grant_type=client_credentials&scope=https://graph.microsoft.com/.default

Status Code:新建一个数字行的变量即可

Result:选择TokenResponse

配置完成,简单解释一下就是请求Graph API的Token 存储在TokenResponse里面用户后续调用。

7. 配置Set content-type header 2节点

配置第二个设置变量,具体参考第一个,注意的是“Bearer ”,注意赋值红色部分到剪贴板获,然后在复制进来。如果出现401的状态。证明复制成了HTML格式的空格。

8. 配置To SharepointOnline节点

Address:

https://graph.microsoft.com/beta/sites/akmiihk.sharepoint.com,56536377-50b4-48b9-b56c-56fed7c3c517,883b8886-99f0-4077-995c-01b117db9694/lists/{451d7cdb-64a2-4b33-8ea0-0587e987e584}/items

akmiihk.sharepoint.com:商户域名

56536377-50b4-48b9-b56c-56fed7c3c517:siteID

883b8886-99f0-4077-995c-01b117db9694: subwebID

451d7cdb-64a2-4b33-8ea0-0587e987e584: listed

具体参考Graph API 的使用方式,这里只介绍本次接口的示例。

Method: PATCH,

**Auth Type:**No authentication

HttpHeader:选择刚才定义的ListHeader

Data:

{

“fields”: {

“ColumnName1”: “值”,

“ColumnName2”: “值”,

“ColumnName3”: 32

}

}

Status Code:新建一个数字行的变量即可

Result:选择ListResponse

配置完成,简单解释一下就是请求Graph API的新增数据接口存储在ListResponse里面用户后续调用。

9. 配置update itemid节点

最后很简单,将请求成功的ItemID回写进自己的表里面,用于更新或删除等其他操作

最后保存发布即可!