{
"encrypt": "FIAfJPGRmFZWkaxPQ1XrJZVbv2JwdjfLk4jx0k/U1deAqYK3AXOZ5zcHt/cC4ZNTqYwWUW/EoL+b2hW/C4zoAQQ5CeMtbxX2zHjm+E4nX/Aww+FHUL6iuIMaeL2KLxqdtbHRC50vgC2YI7xohnb3KuCNBMUzLiPeNIpVdnYaeteCmSaESb+AZpJB9PExzTpRDzCRv+T6o5vlzaE8UgIneC1sYu85BnPBEMTSuj1ZZzfdQi7ZW992Z4dmJxn9e8FL2VArNm99f5Io3c2O4AcNsQENNKtfAAxVjCqc3mg5jF0123123flX1UOF5fzJ0sApG2OEn9wfyPDRBsApn9o+fceF9hNrYBGsdtZrZYyGG387CGOtKsuj8e2E8SNp+Pn4E9oYejOTR+ZNLNi+twxaXVlJhr6l+RXYwEiMGQE9zGFBD6h2dOhKh3W84p1GEYnSRIz1+9/Hp66arjC7RCrhuW5OjCj4QFEQJiwgL123123VsL03CxxFZarzxzffryrWUG3VkRdHRHbTsC34+ScoL5MTDU1QAWdqUC1T7xT0lCvQELaIhBTXAYrznJl6PlA83oqlMxpHh0gZBB1jFbfoUr7OQbBs1xqzpYK6Yjux6diwpQB1zlZErYJUfCqK7G/zI9yK/60b4HW0123+123123="
}
Encrypt Key
进行哈希,得到密钥 key
。iv
。iv
和 key
对回调内容加密,得到 encrypted_event
。base64(iv+encrypted_event)
。challenge
参数。在请求地址所属的开发者服务器内,需要接收该 HTTP POST 请求,并在 1 秒内返回包含 challenge
参数的响应体,成功完成校验后才可以保存。如何处理并响应 HTTP POST 请求,参见下文 响应 POST 校验请求 章节。{
"challenge": "1b6aef1a-401f-406a-be41-f48911eabcef", // 需要在响应中原样返回的值。
"token": "xxxxxx", // 即应用的 Verification Token,通过该值你可以判断请求是否来自飞书开放平台的指定应用。
"type": "url_verification" // 固定值,表示这是一个验证请求。
}
参数 | 类型 | 描述 |
---|---|---|
challenge | String | 用于验证的字段,需在响应体中原样返回该值。示例值:1b6aef1a-401f-406a-be41-f48911eabcef |
token | String | 应用验证标识 Verification Token。你可以通过该 Token 验证请求是否属于当前应用。在 开发者后台 > 应用详情页 > 开发配置 > 事件与回调 > 安全设置 模块,可查看应用的 Verification Token。 |
type | String | 回调类型。用于校验的回调类型固定取值为 url_verification ,表示当前请求是在验证 URL 合法性。 |
challenge
值,并在 1 秒内返回包含 challenge
值的响应数据。响应体示例如下:{
"challenge": "1b6aef1a-401f-406a-be41-f48911eabcef"
}
{
"encrypt": "ds3da3sj32421lkkld4xxxx" // 加密字符串。
}
encrypt
字符串,并在 1 秒内返回提取出的 challenge
值。解密方式可参见接收回调。{
"challenge": "1b6aef1a-401f-406a-be41-f48911eabcef", // 需要在响应中原样返回的值。
"token": "xxxxxx", // 即应用的 Verification Token,通过该值你可以判断请求是否来自飞书开放平台的指定应用。
"type": "url_verification" // 固定值,表示这是一个验证请求。
}
{
"challenge": "1b6aef1a-401f-406a-be41-f48911eabcef"
}
编程语言 | 示例代码 |
---|---|
Java | 集成 Servlet 容器,将回调发送至开发者服务器 |
Python | 将回调发送至开发者服务器 |
Golang | 将回调发送至开发者服务器 |
Node.js | 将回调发送至开发者服务器 |