API对接介绍
Roy
• 发表于:2021年09月26日 00:14 • 更新于:2021年09月26日 00:14
825

概述

白码平台支持通过JS编程(node.js)的方式实现API对接,可自行编写云函数或webhook。在工作台中白码还提供了常用的API模板,可直接使用模板快速创建一个与您业务需求相近的API。如果使用私有化部署版本,可基于egg.js框架进行白码API对接及服务端的二次开发。

云函数

由白码平台发起请求的API在白码称为云函数。例如:第三方系统已有一个客户资料数据库,同时该系统提供API接口获取客户资料,此时可以在白码中创建一个云函数主动获取客户数据。云函数启用后可直接在功能流程的“API-自定义”类型步骤中调用。

 

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200728/1595922535781_0.png

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200728/1595922540932_0%20(1).png


添加云函数

1、点击云函数下方的"添加API"按钮,在API模板界面点击“新建空白API”,在弹出窗口中输入API名称,点击确定。

2、在配置页配置输入、输出参数、并填写配置表。

3、切换至“编程”标签,现在您可以在代码编辑器中定义云函数了。如果你熟悉JS脚本语言,编写API非常简单,你只需要在run方法中补充您的业务逻辑代码就可以了。

run方法包含了3个参数

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607417007_image.png

input:输入参数。通过“input.key”调用配置中添加的输入参数。

output:输出参数。通过“output.key”调用配置中添加的输出参数。

modules:可调用模块。

详情请参考API开发文档


这里以实现在企业微信上传临时素材功能为例介绍云函数具体使用流程:根据企业微信API模板创建一个API实现接受一个image_url参数,返回素材mediaID及素材创建时间createAT。

API配置如下:

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596597705391_image.png


代码如下:

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596600117973_image.png


通过在线调试工具测试结果(测试前请请先将代码保存,并保持开启状态):

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599572326_image.png


调用云函数

1、在调用云函数前,请确保云函数测试无误可用,并将云函数启用(在云函数的基本信息中将状态开关打开即可。需要注意的是试用版本同一时间仅支持开启一个云函数,详情可参考价格信息。)。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596598423497_image.png


2、创建一个功能,进入功能编辑页,添加一个步骤,类型选择“API”,操作选择“自定义api”,模板选择开启的云函数。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599121048_image.png


3、点击此步骤的“设置”按钮,即可看到此API包含的输入输出参数。现在你可以将输入参数设为其他步骤中的相关数值,以传入云函数

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599164445_image.png

4、创建一个步骤来使用API的输出参数。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599289970_image.png

5、发布功能,运行后即可在数据库中看到API返回的相应数据。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599478718_image.png

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596599608520_image.png

webhook

由第三方发起请求的API在白码称为webhook。例如:在白码平台上有一个添加客户资料的功能,您可以通过配置一个webhook供第三方调用,使得第三方可以主动添加客户资料到白码平台。


https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607555125_image.png


添加webhook

1、点击webhook下方的"添加API"按钮,在API模板界面点击“新建空白API”,在弹出窗口中输入API名称,设定webhook路径(此路径为第三方发起该webhook请求的路径),点击确定。

2、在配置页填写配置表。

3、切换至“编程”标签,现在您可以在代码编辑器中定义webhook了。如果你熟悉JS脚本语言,编写API非常简单,你只需要在hook方法中补充您的业务逻辑代码就可以了。

hook方法包含了3个参数:


req:请求对象,可以获取网络请求中的参数。

resp:回应对象,可以将webhook的执行结果返回到请求方。

modules:可调用模块。

详情请参考API开发文档


由于webhook属于被动式接收数据,而功能属于主动式处理,因此不支持在功能步骤中处理webhook接收的数据。需要在webhook中通$modules.program.exec($flow,$form,$version)调用一个功能来记录处理接收的数据。

这里以实现在接收企业微信添加企业客户事件回调数据的功能为例介绍webhook具体使用流程:根据企业微信API模板创建一个API实现记录成员添加外部联系人信息。


API配置如下:

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596606998186_1.png


代码如下:

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607004815_2.png


调用功能如下:

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607013802_3.png

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607022874_4.png


调用webhook

以上文配置的webhook为例:


1、保证API编写无误后,将API保持开启状态。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607034981_5.png


2、在第三方配置此webhook的路径。

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607051883_6.png


3、在第三方触发回调事件,在白码数据库查看回调信息。

1)使用企业微信成员账号将微信用户“添加为联系人”

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607058827_7.png


2)在数据库中查看回调数据

https://pan.bnocode.com/project/5ccfc7ad044c8e018c8c5d36/attachment/20200805/1596607065720_8.png




本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~
API对接介绍
文章标签
API
联系我们
售前咨询电话
020-88520693
意见箱 · 建议反馈
您的宝贵建议,使白码更完美!
白码小助理
加入白码社区,学习更多开发小技巧!
微信扫码添加白码小助理