服务端 Webhook
CFC Webhook
对于比较简单的 Opencard 应用,开发者也可以通过百度智能云 CFC 功能中的 open-card-webhook
模板函数实现 Webhook 后端。开发者基本不需要有任何开发能力,即可完成卡片接入。下面对 CFC 接入方式进行简单的介绍。
什么是 CFC
百度智能云的函数计算 CFC (Cloud Function Compute) 产品,提供基于事件触发、全托管的云端计算能力。
CFC 适合的场景
适合使用 CFC Webhook 而不是开发者自己开发 Webhook 的场景为:
- 开发者没有人力/服务器去开发和维护一个自有的 Webhook 服务;
- 开发者对接的 OpenCard 卡片 Webhook 实现比较简单,从
intent
到data
只是简单的 Key Value 映射,不需要复杂的后端系统; - 开发者覆盖的
intent
数据量不大,不超过一千条; 在这种场景下,开发者可以通过 CFC 中现成的模板函数实现 OpenCard 所需的 Webhook 功能。不需要自己运维任何 Web 服务器,不需要自己开发 JWE 加解密的功能,只需要配置必要的物料(见下文),即可提供标准的 OpenCard Webhook 服务以接入开放平台。
注意:CFC 只是一种托管的 Webhook 实现,即使开发者初期使用 CFC,后续也可以随时迁移到自有服务器上。
完成一个CFC的webhook服务功能需要如下步骤:
1.登录百度云智能云平台
点击 立即购买,可以看产品定价文档,绝大部分的用户都将在免费的服务范畴内:
2. 创建函数
选择: 从模板创建函数
蓝图搜索关键词: opencard
选择 open-card-webhook-python:
函数配置:按照要求填写函数名(用于标识自己创建的函数)
下一步:触发器配置
配置项如下:
- 触发器:HTTP触发器
- URL路径:更具自己的情况填写 例如 “/opencard/webhook”
- HTTP方法:选择POST
- 身份验证:不验证
- 提交 生成CFC
3. 进入代码编辑页
代码编辑页里,如果没有特殊的需求,您只需要修改用户自定义的配置项部分:即 psk_table
和data
:
psk_table
:
注意:请务必将 PSK 改为自己正在使用的 PSK,不要使用默认的 PSK,否则存在数据泄露风险。一般来说,psk_table 只维护两个 PSK 即可,当前正在使用的 kid 和 PSK,以及上一次使用的 kid 和 PSK。
- {
"0":"MTExMTExMTExMTExMTExMQ", // kid = "0" 时候的psk,
"1":"ATExMTExMTExMTExMTExMQ", // kid = "1" 时候的psk
}
data
:
- {
"mobile": { // 当 surface 为 mobile 时,需要返回的数据,需要符合对应卡片的 Schema
"toolname_证件照拍摄": { // 序列化后的 intent,序列化方法见下方
"jump_url": "/page/abc",
"name": "我的识图",
"description": "这是我们的描述",
"button_text": "点击识图",
"image": "https://example.com/1.png"
},
"toolname_证件照": {
"jump_url": "/page/abc",
"name": "我的识图-1",
"description": "这是我们的描述-2",
"button_text": "点击识图",
"image": "https://example.com/2.png"
}
},
"wise_h5": { // 当 surface 为 web_h5 时,需要返回的数据(可为空)
"toolname_证件照拍摄": {
"jump_url": "/page/123",
"name": "我的识图",
"description": "这是我们的描述",
"button_text": "点击识图",
"image": "https://example.com/1.png"
}
}
}
上述数据中key的生成规则:
toolname_证件照拍摄 是根据 intent
JSON 串中的 key
按字母序升序排序,然后用下划线连接 k1_v1_k2_v2。
- 举例 1: intent = {“a”:”hello”,”b”:”word”} 最终key生产a_hello_b_word
- 举例 2: intent 中包含空 跳过 例如 intent = {“a”:”hello”,”b”:””,”c”:”word”} 最终key = a_hello_c_word
4. 获取 CFC Webhook HTTP URL
在触发器菜单即可获取 CFC Webhook 的 HTTP URL。由于 Opencard 仅支持 HTTP 协议,还需要将 URL 中的 Scheme 从 https://
修改为 http://
。然后将 HTTP URL 提交到开放平台的 Webhook URL 配置中即可。