创建webhook

更新时间:2023-04-24 16:37:48

适用产品

CDN Pro

接口描述

创建webhook接口。当某个异步任务完成时,可用webhook接口来接收任务完成通知。当你创建部署任务,刷新任务,预取任务,或者配置验证任务时,都可以使用webhook接口来接收任务完成通知。

推荐使用 Open API在线调试

Open API在线调试功能提供可视化界面在线调试API、支持生成代码示例、快速检索查看API文档等能力。前往调试

请求参数

Body 参数

参数名称描述
*nameString
取值范围: <= 250 字符 webhook接口名称。
descriptionString
取值范围: <= 500 字符 webhook接口描述。
*urlString
取值范围: <= 250 字符 当关联的异步任务执行完成时,需触发的webhook接口的地址。CDN Pro将使用HTTP POST方法调用webhook接口,请求体为JSON格式。请求体示例: { 'subject': '{some text}', 'taskType': '{task type}', 'taskList': [ { 'taskId': '{task id 1}', ... }, { 'taskId': '{task id 2}', ... } ] }
credentialsObject
用于鉴权的账号信息。当您的服务器有鉴权要求时,需支持HTTP Basic鉴权方式。CDN Pro将用当前日期对secretKey进行加密,生成密码(password)。以下是一个secretKey加密和webhook接口调用的示例:
#!/bin/bash

# 鉴权账号
USER=YourUser
SECRET_KEY=YourSecretKey

DATE=`date '+%a, %d %b %Y %H:%M:%S %Z'`
echo $DATE

# 生成密码
password=$(echo -n '$DATE' | openssl dgst -sha1 -hmac '$SECRET_KEY' -binary | base64)
echo ' '

# 调用webhook接口
apiCall='curl -i --url
'https://a.webhook.com'
-X POST 
	-u $USER:$password 
	-H 'Date: $DATE' 
        -H 'Content-Type: application/json' 
        -d '{
...
}' 
        '
eval $apiCall
*userString
用于鉴权的用户名。
*secretKeyString
用于鉴权的密钥。CDN Pro将用当期日期对密钥进行加密生成密码(password),然后通过Authorization请求头传给你方服务器。

返回参数

响应头

参数名称描述
LocationString
通过Location响应头返回新建的wehbook的地址。地址中包含webhook的ID,可使用该ID调用获取‘webhook详细信息’接口来查看webhook的详细信息。URL示例:Location: https://open.chinanetcenter.com/cdn/webhooks/60a2e69806d5583a81ad9500

错误码

错误代码(code)描述(message)HTTP状态码语义
InvalidNameThe entered value for name is invalid or longer than 250 characters.400name参数无效,或者长度超过250个字符。
InvalidURLThe entered value for URL is invalid or longer than 250 characters.400URL参数无效,或者长度超过250个字符。
InvalidCredentialThe username or secretKey contains non-printable characters.400username或secretKey参数含有不可打印的字符。
TooManyWebhooksThe number of webhooks exceeded the account maximum.403webhooks数量已超过账号上限。

示例

400
403
400
请求示例
复制代码 复制成功
#!/bin/bash
username="example_username"
apiKey="example_apiKey"
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://open.chinanetcenter.com/cdn/webhooks" \
-X "POST" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-d '{"name": "mywebhook", "description": "This webhook notifies when a deployment completes.", "url": "https://www.mydomain.com/notify"}'
返回示例
复制代码 复制成功
{
    "code": "InvalidName",
    "message": "The entered value for name is invalid or longer than 250 characters."
}
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!