华为云用户手册

  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 12 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如 IAM 服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } }} 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 状态码 表1 正常返回值 返回值 说明 200 任务提交成功 201 创建成功 表2 异常返回值 返回值 说明 400 Bad Request 请求参数错误。 401 Unauthorized 鉴权失败。 403 Forbidden 没有权限对资源访问。 404 Not Found 请求的资源不存在。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。 父主题: 通用请求返回值
  • 响应示例 状态码: 200 OK { "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085", "topic_count" : 1, "topics" : [ { "topic_urn" : "urn:smn:regionId:8bad8a40e0f7462f8c1676e3f93a8183:test_topic_v2", "display_name" : "testtest", "name" : "test_topic_v1", "push_policy" : 0, "enterprise_project_id" : "0", "topic_id" : "84698185946d44d08431aa441d8e2cf2" } ]}
  • URI GET /v2/{project_id}/notifications/topics 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取项目ID请参考 获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量。 偏移量为一个大于0小于资源总个数的整数,表示查询该偏移量后面的所有的资源,默认值为0。 缺省值:0 limit 否 Integer 查询的数量限制。 取值范围:1~100,取值一般为10,20,50。功能说明:每页返回的资源个数。默认值为100。 缺省值:100 enterprise_project_id 否 String 企业项目id,默认企业项目id为0。 缺省值:0 name 否 String 检索的主题名称,完全匹配。 fuzzy_name 否 String 检索的主题名称,模糊匹配,按照startwith模式进行匹配。 topic_id 否 String 检索的主题ID,完全匹配。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 topic_count Integer 返回的Topic个数。该参数不受offset和limit影响,即返回的是您账户下所有的Topic个数。 topics Array of ListTopicsItem objects Topic结构体数组。 表5 ListTopicsItem 参数 参数类型 描述 topic_urn String Topic的唯一的资源标识。 name String 创建topic的名字。 display_name String Topic的显示名,推送邮件消息时,作为邮件发件人显示。 push_policy Integer 消息推送的策略,该属性目前不支持修改,后续将支持修改。0表示发送失败,保留到失败队列,1表示直接丢弃发送失败的消息。 enterprise_project_id String 企业项目ID。 topic_id String 主题ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
  • 模板操作 权限 对应API接口 授权项 IAM项目 企业项目 创建消息模板 POST /v2/{project_id}/notifications/message_template smn:template:create √ × 查询消息模板 GET /v2/{project_id}/notifications/message_template smn:template:list √ × 更新消息模板 PUT /v2/{project_id}/notifications/message_template/{message_template_id} smn:template:update √ × 删除消息模板 DELETE /v2/{project_id}/notifications/message_template/{message_template_id} smn:template:delete √ × 父主题: 权限和授权项
  • 操作步骤 Token认证,具体操作请参考认证鉴权。 创建Topic。 发送“POST https://{ SMN _Endpoint}/v2/{project_id}/notifications/topics”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入如下参数: 详细的参数说明请参见创建主题。 { "name": "test_topic_v2", //Topic名称(必填String) "display_name": "test" , //显示名(非必填String) "enterprise_project_id": "0" //企业项目ID(企业项目场景下为必填String)} 响应示例: { "request_id": "6a63a18b8bab40ffb71ebd9cb80d0085", "topic_urn": "urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2" } 添加订阅。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/subscriptions”。 其中,topic_urn可在2.c的返回体中获取。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下。 { "protocol": "email", //订阅协议(必填String) "endpoint": "xxx@xx.com", //邮件地址(必填String) "remark": "订阅终端" //备注(非必填String) } 响应示例: { "subscriptions_result": [{ "request_id": "126c17f805934e5eadf647b0860c7a0a", "subscription_urn": "urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2", "http_code": 201}]} 可为Topic添加多种以及多个订阅终端,支持的订阅协议请参考订阅。 订阅终端会收到一条确认订阅的消息,请在邮箱中进行确认订阅的操作。 发送消息。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/publish”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: { "subject":"test message v2", //标题,邮件订阅终端使用(非必填String) "message": "Message test message v2." //需要发送的消息(必填String) } 响应示例: { "request_id": "6a63a18b8bab40ffb71ebd9cb80d0085", "message_id": "992bbd32819448af95f83814cb3c7454" } 已完成3.c的确认订阅操作的订阅终端都能接收到该消息,否则无法接收消息。
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 topic_urn String Topic的唯一的资源标识,可通过查询主题列表获取该标识。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
  • 标签操作 权限 对应API接口 授权项 IAM项目 企业项目 添加资源标签 POST /v2/{project_id}/{resource_type}/{resource_id}/tags smn:tag:create √ √ 更新标签 - smn:tag:update √ √ 删除资源标签 DELETE /v2/{project_id}/{resource_type}/{resource_id}/tags/{key} smn:tag:delete √ √ 查询资源标签 GET /v2/{project_id}/{resource_type}/{resource_id}/tags smn:tag:list √ √ 父主题: 权限和授权项
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 创建topic的名字。Topic名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,长度为1到255个字符。 最小长度:1 最大长度:255 display_name 是 String Topic的显示名,推送邮件消息时,作为邮件发件人显示。显示名的长度为192byte或64个中文。默认值为空。 最小长度:1 最大长度:192 enterprise_project_id 否 String 企业项目ID。非必选参数,当企业项目开关打开时需要传入该参数。 缺省值:0
  • 主题操作 权限 对应API接口 授权项 IAM项目 企业项目 创建主题 POST /v2/{project_id}/notifications/topics smn:topic:create √ √ 查询主题 GET /v2/{project_id}/notifications/topics smn:topic:list √ √ 更新主题 PUT /v2/{project_id}/notifications/topics/{topic_urn} smn:topic:update √ √ 删除主题 DELETE /v2/{project_id}/notifications/topics/{topic_urn} smn:topic:delete √ √ 父主题: 权限和授权项
  • 操作步骤 Token认证,具体操作请参考认证鉴权。 创建Topic。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入如下参数。 详细的参数说明请参见创建主题。 { "name": "publish_by_template", //Topic名称(必填String) "display_name": "test" , //显示名(非必填String) "enterprise_project_id": "0" //企业项目ID(企业项目场景下为必填String)} 响应示例: { "request_id": "a8f8161449564f569c19e2a9e3be25c9", "topic_urn": "urn:smn:br-iaas-odin1:0605767e0a00d5762fe7c00d0e33345c:publish_by_template" } 添加订阅。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/subscriptions”。 其中,topic_urn可在2.c的返回体中获取。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下。 { "protocol": "sms", //订阅协议(必填String) "endpoint": "86137****3629", //邮件地址(必填String) "remark": "订阅终端" //备注(非必填String) } 响应示例: { "subscriptions_result":[{ "request_id":"126c17f805934e5eadf647b0860c7a0a", "subscription_urn":"urn:smn:br-iaas-odin1:0605767e0a00d5762fe7c00d0e33345c:publish_by_template:3e5ac4544a1947b7b0d9f743fe52bdbd", "http_code":201}]} 可为Topic添加多种以及多个订阅终端,支持的订阅协议请参考订阅。 订阅终端会收到一条确认订阅的消息,请在邮箱中进行确认订阅的操作。 创建消息模板。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/message_template”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: { "message_template_name": "sms_template_test", "locale": "zh-cn", "content": "{content}", "protocol": "sms"} 响应示例: { "request_id": "e67228ac92324a58980e922ca600f8ef", "message_template_id": "cdb113996c5d49149fb97af36d9801ce"} 订阅终端会收到一条确认订阅的消息,请在手机中进行确认订阅的操作。 使用消息模板方式发布消息。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/publish”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: { "message_template_name": "sms_template_test", "tags": {"content": "hello test" }, "subject": "template message test"} 响应示例: {"message_id": "5da965fd9e2c4036a0542317d944af83","request_id": "c6be4517f985470e8448e42f9d2ec5a2"} 已完成3.c的确认订阅操作的订阅终端都能接收到该消息,否则无法接收消息。
  • Application操作 权限 对应API接口 授权项 IAM项目 企业项目 创建应用 POST /v2/{project_id}/notifications/applications smn:application:create √ √ 查询应用 GET /v2/{project_id}/notifications/applications?offset={offset}&limit={limit}&name={name}&platform={platform} smn:application:list √ √ 更新应用 PUT /v2/{project_id}/notifications/applications/{application_urn} smn:application:update √ √ 删除应用 DELETE /v2/{project_id}/notifications/applications/{application_urn} smn:application:delete √ √ 父主题: 权限和授权项
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。管理员可以在授权项列表中查看授权项是否支持IAM项目或企业项目,“√”表示支持,“×”表示暂不支持。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 消息通知 服务(SMN)的支持自定义策略授权项如下所示: 主题操作,包含Topic管理接口对应的授权项,如创建主题、查询主题、更新主题、删除主题。 消息模板操作,包含消息模板管理接口对应的授权项,如创建消息模板、查询消息模板、更新消息模板、删除消息模板等接口。 Application操作,包含Application操作管理接口对应的授权项,如创建应用、查询应用、更新应用、删除应用等接口。 使用标签管理服务,包含使用标签管理服务管理接口对应的授权项,如查询资源实例、 添加资源标签、批量添加删除资源标签、删除资源标签等接口。 发布消息操作,包含发布消息操作管理接口对应的授权项,如消息发布接口。 Application直发消息操作,包含Application直发消息操作管理接口对应的授权项,如发布应用消息接口。
  • 修订记录 发布日期 修订记录 2023-05-29 第十六次正式发布。 本次变更说明如下: 新增“更新订阅者”章节。 新增“ 云日志 操作”章节。 更新“查询主题列表”和“创建主题”章节。 更新“查询主题策略”章节。 “订阅”章节更新参数“protocol”描述。 “消息发布”章节更新参数“message_structure”描述。 2022-07-18 第十五次正式发布。 移动如下节点API至“历史API”: Application操作 Application endpoint操作 Application直发消息操作 2020-09-30 第十四次正式发布。 本次变更说明如下: 整体优化文档。 2019-07-05 第十四次正式发布。 本次变更说明如下: 新增“使用前必读”和“如何调用API”章节。 2018-11-30 第十三次正式发布。 2018-09-30 第十二次正式发布。 本次变更说明如下: 新增查询版本操作章节。 2018-04-30 第十一次正式发布。 本次变更说明如下: 全文新增“错误码”section。 新增使用标签管理服务章节 新增批量发送不同内容的推广类短信章节 新增Tags结构体、Match结构体、Resource结构体、Resource_tag结构体和Promotion_sms_commit_result结构体 新增返回值“401” 新增错误码说明 刷新错误码“SMN.0113” 刷新批量发送推广类短信、删除短信签名、创建短信模板、查询短信模板和查询短信模板详情 刷新“短信发送支持的国家码和地区码” 2018-03-30 第十次正式发布。 本次变更说明如下: 新增批量发送短信验证码或短信通知 新增批量发送不同内容的短信验证码或短信通知 新增Sms_commit_result结构体 新增Sms_message结构体 新增错误码说明SMNE005 刷新发送短信验证码或短信通知 删除PromotionSms_result结构体 2018-01-30 第九次正式发布。 本次变更说明如下: 新增创建短信模板 新增查询短信模板 新增查询短信模板详情 新增删除短信模板 新增批量发送推广类短信 刷新错误码说明 新增Sms_template结构体 新增PromotionSms_result结构体 新增短信回调事件说明 2017-11-30 第八次正式发布。 本次变更说明如下: 新增functiongraph订阅协议。 2017-10-30 第七次正式发布。 本次变更说明如下: 新增dms订阅协议。 新增查询短信的发送状态接口。 新增查询已发送短信的内容接口。 新增查询短信回调事件接口。 新增更新短信回调事件接口。 2017-08-18 第六次正式发布。 本次变更说明如下: 新增functionstage订阅协议。 2017-06-30 第五次正式发布。 本次变更说明如下: 新增短信签名接口。 新增短信签名错误码说明。 2017-03-13 第四次正式发布。 本次变更说明如下: Topic新增属性introduction 2016-10-29 第三次正式发布。 本次变更说明如下: 新增接口名称。 修改“生成AK、SK”步骤。 新增短信直发接口。 2016-09-30 第二次正式发布。 本次变更说明如下: 新增查询Topic属性接口。 新增更新Topic属性接口。 新增删除指定名称的Topic属性接口。 新增删除所有Topic属性接口 2016-08-25 第一次正式发布。
  • 订阅确认V2接口(废弃) 用途 订阅确认接口 接口 PUT /v2/{tenant_id}/notifications/topics/{topic_urn}/subscriptions/{subscription_urn}/confirmation PUT /v2/{tenant_id}/notifications/subscriptions/confirmation 邮件模板生命周期管理接口(废弃) POST /v2/{tenant_id}/notifications/integrated_system_message_template 联系人生命周期管理接口(废弃) POST /v2/notifications/contact/callback/{event_type} P12证书转Cert证书(废弃) POST /rest/v2/notifications/credentials_file_upload 父主题: 历史API
  • 国家码和地区码 国家(或地区) 中文名 国家(或地区)码 Afghanistan 阿富汗 93 Albania 阿尔巴尼亚 355 Algeria 阿尔及利亚 213 American Samoa 美属萨摩亚 1684 Andorra 安道尔 376 Angola 安哥拉 244 Anguilla 安圭拉 1264 Antigua and Barbuda 安提瓜和巴布达 1268 Argentina 阿根廷 54 Armenia 亚美尼亚 374 Aruba 阿鲁巴 297 Australia 澳大利亚 61 Austria 奥地利 43 Azerbaijan 阿塞拜疆 994 Bahamas 巴哈马 1242 Bahrain 巴林 973 Bangladesh 孟加拉国 880 Barbados 巴巴多斯 1246 Belarus 白俄罗斯 375 Belgium 比利时 32 Belize 伯利兹 501 Benin 贝宁 229 Bermuda 百慕大群岛 1441 Bhutan 不丹 975 Bolivia 玻利维亚 591 Bosnia and Herzegovina 波斯尼亚和黑塞哥维那 387 Botswana 博茨瓦纳 267 Brazil 巴西 55 British Indian Ocean Territory 英属印度洋领地 246 Brunei 文莱 673 Bulgaria 保加利亚 359 Burkina Faso 布基纳法索 226 Burundi 布隆迪 257 Cambodia 柬埔寨 855 Cameroon 喀麦隆 237 Canada 加拿大 1 Cape Verde 佛得角 238 Cayman Islands 开曼群岛 1345 Central African Republic 中非共和国 236 Chad 乍得 235 Chile 智利 56 Colombia 哥伦比亚 57 Comoros 科摩罗 269 Republic Of The Congo 刚果共和国 242 Democratic Republic of the Congo 刚果民主共和国 243 Cook Islands 库克群岛 682 Costa Rica 哥斯达黎加 506 Croatia 克罗地亚 385 Curacao 库拉索 599 Cyprus 塞浦路斯 357 Czechia 捷克 420 Denmark 丹麦 45 Djibouti 吉布提 253 Dominica 多米尼克 1767 Dominican Republic 多米尼加共和国 1809 Ecuador 厄瓜多尔 593 Egypt 埃及 20 El Salvador 萨尔瓦多 503 Equatorial Guinea 赤道几内亚 240 Eritrea 厄立特里亚 291 Estonia 爱沙尼亚 372 Ethiopia 埃塞俄比亚 251 Falkland Islands 福克兰群岛 500 Faroe Islands 法罗群岛 298 Fiji 斐济 679 Finland 芬兰 358 France 法国 33 French Guiana 法属圭亚那 594 French Polynesia 法属波利尼西亚 689 Gabon 加蓬 241 Gambia 冈比亚 220 Georgia 格鲁吉亚 995 Germany 德国 49 Ghana 加纳 233 Gibraltar 直布罗陀 350 Greece 希腊 30 Greenland 格陵兰岛 299 Grenada 格林纳达 1473 Guadeloupe 瓜德罗普岛 590 Guatemala 瓜地马拉 502 Guernsey 根西 44 Guinea 几内亚 224 Guinea-Bissau 几内亚比绍 245 Guyana 圭亚那 592 Haiti 海地 509 Honduras 洪都拉斯 504 Hong Kong (China) 中国香港 852 Hungary 匈牙利 36 Iceland 冰岛 354 India 印度 91 Indonesia 印度尼西亚 62 Iraq 伊拉克 964 Ireland 爱尔兰 353 Isle of Man 马恩岛 44 Israel 以色列 972 Italy 意大利 39 Ivory Coast 科特迪瓦 225 Jamaica 牙买加 1876 Japan 日本 81 Jersey 泽西岛 44 Jordan 约旦 962 Kazakhstan 哈萨克斯坦 7 Kenya 肯尼亚 254 Kuwait 科威特 965 Kyrgyzstan 吉尔吉斯斯坦 996 Laos 老挝 856 Latvia 拉脱维亚 371 Lebanon 黎巴嫩 961 Lesotho 莱索托 266 Liberia 利比里亚 231 Libya 利比亚 218 Liechtenstein 列支敦士登 423 Lithuania 立陶宛 370 Luxembourg 卢森堡 352 Macau (China) 中国澳门 853 Macedonia 马其顿 389 Madagascar 马达加斯加 261 Malawi 马拉维 265 Malaysia 马来西亚 60 Maldives 马尔代夫 960 Mali 马里 223 Malta 马耳他 356 Marshall Islands 马绍尔群岛 692 Martinique 马提尼克 596 Mauritania 毛里塔尼亚 222 Mauritius 毛里求斯 230 Mexico 墨西哥 52 Moldova 摩尔多瓦 373 Monaco 摩纳哥 377 Mongolia 蒙古 976 Montenegro 黑山 382 Montserrat 蒙特塞拉特岛 1664 Morocco 摩洛哥 212 Mozambique 莫桑比克 258 Myanmar 缅甸 95 Namibia 纳米比亚 264 Nauru 瑙鲁 674 Nepal 尼泊尔 977 Netherlands 荷兰 31 New Caledonia 新喀里多尼亚 687 New Zealand 新西兰 64 Nicaragua 尼加拉瓜 505 Niger 尼日尔 227 Nigeria 尼日利亚 234 Niue 纽埃岛 683 Norfolk Island 诺福克岛 672 Norway 挪威 47 Oman 阿曼 968 Pakistan 巴基斯坦 92 Palau 帕劳 680 Palestinian Territory 巴勒斯坦 970 Panama 巴拿马 507 Papua New Guinea 巴布亚新几内亚 675 Paraguay 巴拉圭 595 Peru 秘鲁 51 Philippines 菲律宾 63 Poland 波兰 48 Portugal 葡萄牙 351 Qatar 卡塔尔 974 Réunion Island 留尼汪 262 Romania 罗马尼亚 40 Rwanda 卢旺达 250 Saint Kitts and Nevis 圣基茨和尼维斯 1869 Saint Lucia 圣卢西亚 1758 Saint Pierre and Miquelon 圣皮埃尔和密克隆 508 Saint Vincent and The Grenadines 圣文森特和格林纳丁斯 1784 Samoa 萨摩亚 685 San Marino 圣马力诺 378 Sao Tome and Principe 圣多美和普林西比 239 Saudi Arabia 沙特阿拉伯 966 Senegal 塞内加尔 221 Serbia 塞尔维亚 381 Seychelles 塞舌尔 248 Sierra Leone 塞拉利昂 232 Singapore 新加坡 65 Sint Maarten (Dutch Part) 荷属圣马丁 1721 Slovakia 斯洛伐克 421 Slovenia 斯洛文尼亚 386 Solomon Islands 所罗门群岛 677 Somalia 索马里 252 South Africa 南非 27 South Korea 韩国 82 Spain 西班牙 34 Sri Lanka 斯里兰卡 94 Suriname 苏里南 597 Swaziland 斯威士兰 268 Sweden 瑞典 46 Switzerland 瑞士 41 Taiwan (China) 中国台湾 886 Tajikistan 塔吉克斯坦 992 Tanzania 坦桑尼亚 255 Thailand 泰国 66 Timor L'este 东帝汶 670 Togo 多哥 228 Tonga 汤加 676 Trinidad and Tobago 特立尼达和多巴哥 1868 Tunisia 突尼斯 216 Turkey 土耳其 90 Turkmenistan 土库曼斯坦 993 Turks and Caicos Islands 特克斯和凯科斯群岛 1649 Tuvalu 图瓦卢 688 Uganda 乌干达 256 Ukraine 乌克兰 380 United Arab Emirates 阿拉伯联合酋长国 971 United Kingdom 英国 44 United States 美国 1 Uruguay 乌拉圭 598 Uzbekistan 乌兹别克斯坦 998 Vanuatu 瓦努阿图 678 Venezuela 委内瑞拉 58 Vietnam 越南 84 Virgin Islands, British 英属维尔京群岛 1284 Wallis and Futuna 瓦利斯和富图纳 681 Yemen 也门 967 Zambia 赞比亚 260 Zimbabwe 津巴布韦 263 父主题: 附录
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 subscription_urn String 订阅者的唯一资源标识。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
  • 请求示例 在名称为test_topic_v1的主题下添加一个邮件订阅者 POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/urn:smn:regionId:762bdb3251034f268af0e395c53ea09b:test_topic_v1/subscriptions{ "protocol" : "email", "endpoint" : "xxx@xxx.com", "remark" : "运维"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 protocol 是 String 不同协议对应不同的endpoint(接受消息的接入点)。 目前支持的协议包括: “email”:邮件传输协议,endpoint为邮箱地址。 “sms”:短信传输协议,endpoint为手机号码。 “functionstage”:FunctionGraph(函数)传输协议,endpoint为一个函数。 “functiongraph”:FunctionGraph(工作流)传输协议,endpoint为由一组函数编排成的工作流。 “http”、“https”:HTTP/HTTPS传输协议,endpoint为URL。 “callnotify”:语音通知传输协议,endpoint为手机号码。 “wechat”:微信群机器人传输协议。 “dingding”:钉钉群机器人传输协议。 “feishu”:飞书群机器人传输协议。 “welink”:welink群机器人传输协议。 endpoint 是 String 说明: http协议,接入点必须以“http://”开头。 https协议,接入点必须以“https://”开头。 email协议,接入点必须是邮件地址。 sms协议,接入点必须是一个电话号码。 functionstage协议,接入点必须是一个函数。 functiongraph协议,接入点必须是一个 函数工作流 。 dms协议,接入点必须是一个消息队列。 application协议,接入点必须是一个应用平台的设备终端。 callnotify协议,接入点必须是一个电话号码。 dingding协议,接入点必须是一个钉钉群机器人的地址。 wechat协议,接入点必须是一个微信群机器人的地址。 feishu协议,接入点必须是一个飞书群机器人的地址。 welink协议,接入点必须是一个welink的群号。 remark 否 String 备注。最大支持128字节,约42个中文,必须是UTF-8编码的字符串,否则无法正常显示中文。 extension 否 SubscriptionExtension object 表4 SubscriptionExtension 参数 是否必选 参数类型 描述 client_id 否 String 该字段为welink订阅下的租户ID字段,由租户从welink方获取。当protocol值为welink时,该字段为必填字段。 client_secret 否 String 该字段为welink订阅下的租户获取的client secret字段,由租户从welink方获取。当protocol值为welink时,该字段为必填字段。 keyword 否 String 该字段为关键字字段。当protocol协议为feishu时,这里的keyword字段和sign_secret字段二者必选其一。当用户在飞书或钉钉机器人端添加关键字校验的安全策略时,这里的关键字必须是飞书或钉钉端所填写的关键字之一。 sign_secret 否 String 这是加签密钥字段。当protocol协议为feishu或dingding时,这个字段和keyword字段二者必选且只能选其一,密钥配置必须与客户在飞书或钉钉客户端的密钥配置完全一致。例如,如果在飞书端配置了密钥并且没有配置关键字,则在此处填入从飞书获取的密钥字段,如果在飞书端没有配置密钥并且配置了关键字,则不填写该字段。
  • 功能介绍 为指定Topic添加一个订阅者,如果订阅者的状态为未确认,则向订阅者发送一个确认的消息。待订阅者进行ConfirmSubscription确认后,该订阅者才能收到Topic发布的消息。单Topic默认可添加10000个订阅者,高并发场景下,可能会出现订阅者数量超过10000仍添加成功的情况,此为正常现象。接口是幂等的,如果添加已存在的订阅者,则返回成功,且status code为200,否则status code为201。
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 application_urn String Application的唯一资源标识。 application_id String Application资源的ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
  • 响应示例 状态码: 201 OK { "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085", "application_urn" : "urn:smn:regionId:429ffced18074da0938112f2c362b935:app-APNS-application_name002", "application_id" : "a3a4643dc12b4g77ad6e35a16002558c"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 应用名。 最大支持64个字符,只能包含英文字母、下划线和数字。 platform 是 String 应用平台。 目前仅支持HMS、APNS、APNS_SANDBOX。 HMS是为开发者提供的消息推送平台。 APNS和APNS_SANDBOX是用于推送iOS消息的服务平台。 platform_principal 是 String 对于HMS平台是APP ID,只能包含英文字母和数字,最大20个字符。 对于苹果APNS、APNS_SandBox平台是推送证书,大小不超过8K,且是Base64编码。 platform_credential 是 String 对于HMS平台是APP SECRET, 只能包含英文字母和数字,32到64个字符。 对于苹果APNS、APNS_SandBox平台是推送证书的私钥(private key), 大小不超过8K,且是Base64编码。
  • 请求示例 创建Application POST https://{SMN_Endpoint}/v2/{project_id}/notifications/applications{ "name" : "application_name", "platform" : "HMS", "platform_principal" : "appId", "platform_credential" : "appSecret"}
  • 响应示例 状态码: 201 OK { "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085", "endpoint_urn" : "urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:endpoint-APNS-example_application_name-37a2cb947fa43a20bc66e91281194e7a"}
共100000条