所有文档

          简单消息服务 SMS

          通用说明

          SMS API数据交换格式使用JSON格式,Content-Type为applicaton/json样式,所有request/response body内容均使用UTF-8编码。

          SMS API对于每个HTTP请求,认证签名放在Authorization头域中,后端统一认证。且后端在Response头域中会添加x-bce-request-id,作为请求唯一标识,方便追踪定位问题。

          API认证机制

          所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在Authorization头域里。服务端根据生成算法验证认证字符串的正确性。 认证字符串的格式为

          bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}
          • version是正整数
          • timestamp是生成签名的UTC时间
          • expirationPeriodInSeconds表示签名有效期限
          • signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用hostx-bce-date两个header)
          • signature是256位签名的十六进制表示,由64个小写字母组成。

          当百度智能云接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

          鉴权认证机制的详细内容请参见鉴权认证

          幂等性

          幂等性的意思是无论同一个请求被重复发送多次,其结果都和发送一次一样。当调用某些接口时如果遇到了请求超时或服务器内部错误,用户可能会尝试重发请求,这时用户通过clientToken参数避免创建出比预期要多的资源,即保证请求的幂等性。

          幂等性基于clientToken,clientToken是一个长度不超过64位的ASCII字符串,通常放在query string里,如:

          http://smsv3.bj.baidubce.com/api/v3/sendSms?clientToken=e325ea68-02c1-47ad-8844-c7b93cafaeba

          如果用户使用同一个clientToken值多次调用发送短信接口,则服务端会返回相同的请求结果,同时短信也会只发送一次。clientToken的有限期为5min,以服务端首次收到该clientToken为准。

          日期与时间规范

          日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:

          1. 表示日期一律采用YYYY-MM-DD方式,例如2020-03-01表示2020年3月1日
          2. 表示时间一律采用hh:mm:ss方式,并在最后加一个大写字母Z表示UTC时间。例如23:00:10Z表示UTC时间23点0分10秒。
          3. 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如2014-06-01T23:00:10Z表示UTC时间2014年6月1日23点0分10秒。
          上一篇
          SMS服务域名
          下一篇
          API设计