CDN Pro
创建webhook接口。当某个异步任务完成时,可用webhook接口来接收任务完成通知。当你创建部署任务,刷新任务,预取任务,或者配置验证任务时,都可以使用webhook接口来接收任务完成通知。
Open API在线调试功能提供可视化界面在线调试API、支持生成代码示例、快速检索查看API文档等能力。前往调试
参数名称 | 描述 |
---|---|
*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状态码 | 语义 |
---|---|---|---|
InvalidName | The entered value for name is invalid or longer than 250 characters. | 400 | name参数无效,或者长度超过250个字符。 |
InvalidURL | The entered value for URL is invalid or longer than 250 characters. | 400 | URL参数无效,或者长度超过250个字符。 |
InvalidCredential | The username or secretKey contains non-printable characters. | 400 | username或secretKey参数含有不可打印的字符。 |
TooManyWebhooks | The number of webhooks exceeded the account maximum. | 403 | webhooks数量已超过账号上限。 |
#!/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." }