云通讯平台REST 接口为开发者提供主账户信息查询、创建子账户、获取子账户、模板短信、外呼通知、语音验证码、IVR外呼、会议管理和座席管理等功能。
当您第一次使用云通讯平台REST API时,您需要在首页注册账号,我们会给您自动分配一个主账户及默认应用,您可以通过默认应用或创建新应用后,调用接口或使用在线功能生成多个子账户,子账户可以让您轻松的管理客户信息以及控制客户使用情况。欲了解子账户更多信息,请参阅创建子账户。
由于API是基于REST原则上的,所以它很容易编写和测试应用程序。您可以使用浏览器访问URL,也可以使用几乎任何客户端在任何编程语言与REST API进行交互。
云通讯平台 REST Web Service 接口
1、Base URL
文档中所有被引用的地址都有如下Base URL:
https://app.cloopen.com:8883/2013-12-26
注意: 为了确保数据隐私,云通讯平台的REST API是通过HTTPS方式请求。
2、统一请求包头
业务URL格式:Base URL与业务URL相拼接为完整请求URL
主帐号鉴权:
/Accounts/{accountSid}/{func}/{funcdes}?sig={SigParameter}
子帐号鉴权:
/SubAccounts/{subAccountSid}/{func}/{funcdes}?sig={SigParameter}
HTTP标准包头字段(必填):
Accept:application/xml; Content-Type:application/xml;charset=utf-8; Content-Length:256; Authorization:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
属性说明
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
accountSid | String | 必选 | 主账户Id。由32个英文字母和阿拉伯数字组成的主账户唯一标识符 |
subAccountSid | String | 必选 | 子账户Id。由32个英文字母和阿拉伯数字组成的子账户唯一标识符 |
SigParameter | String | 必选 | 验证参数,请求URL必须带有此参数,生成规则详见下方说明 |
Accept | String | 必选 | 客户端响应接收数据格式:application/xml、application/json |
Content-Type | String | 必选 | 类型:application/xml;charset=utf-8、application/json;charset=utf-8 |
Authorization | String | 必选 | 验证信息,生成规则详见下方说明 |
func | String | 可选 | 业务功能,根据业务的需要添加 |
funcdes | String | 可选 | 业务操作,业务功能的各类具体操作分支 |
说明
1. Base URL后跟验证级别
• Accounts:主帐号鉴权,云通讯平台会对请求中的主帐号和主帐号Token进行验证;
• SubAccounts:子帐号鉴权,云通讯平台会对请求中的子帐号和子帐号Token进行验证。
2. SigParameter是REST API 验证参数
主帐号鉴权:
• URL后必须带有sig参数,例如:sig=AAABBBCCCDDDEEEFFFGGG。
• 使用MD5加密(主帐号Id + 主帐号授权令牌 +时间戳)。其中主帐号Id和主帐号授权令牌分别对应管理控制台中的ACCOUNT SID和AUTH TOKEN。
• 时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:20140416142030
• SigParameter参数需要大写
子帐号鉴权:
• URL后必须带有sig参数,例如:sig=AAABBBCCCDDDEEEFFFGGG。
• 使用MD5加密(子帐号Id + 子帐号授权令牌 +时间戳)。其中子帐号Id和子帐号授权令牌可通过创建子帐号接口得到。
• 时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:20140416142030
• SigParameter参数需要大写
3. Authorization是包头验证信息
• 使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户或子账户
• 冒号为英文冒号
• 时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与SigParameter中时间戳相同。
4. func描述业务功能,funcdes描述业务功能的具体操作
例如:/ivr/createconf
3、数据报文格式
云通讯平台REST接口支持两种主流的报文格式:XML和JSON。通过请求包头的字段Content-Type及Accept,即可决定请求包体和响应包体的格式,如:Content-Type:application/xml;charset=utf-8;Accept:application/xml; 表示请求类型格式是XML,要求服务器响应的包体类型也是XML;Content-Type:application/json;charset=utf-8;Accept:application/json; 表示请求类型格式是JSON,要求服务器响应类型也是JSON;
4、关于REST (REpresentational State Transfer)
我们的云通讯平台REST API设计的方式非常友好,让你使用起来简单明了,来源于Wikipedia,REST的支持者认为,Web大范围的扩展和增长直接导致了REST设计原则的产生,以下为REST设计原则:
1.应用场景和功能都被分为不同的资源
2.每一个资源通过一个全局的资源标识以超链接的方式被访问
3.所有资源通过共享标准的接口实现客户侧和资源之间的场景转换,资源包括如下两项:
• 已经被定义好的一套有约束的操作集。
• 一套有约束的内容类别集和可选的命令支持码。
REST 协议特点:
• 客户侧请求服务器模式
• 状态无关
• 缓存机制
• 层次结构
REST的客户端服务器分离理念大大简化了组件执行,降低了语义间连接的复杂度,改进了性能调整的有效性,增加了服务器组件的可扩展性。分层的结构化系统约束允许在不改变接口的情况下引入中间代理、网关、防火墙等多种接入点,并与之通讯,并且通过可扩展性,以共享内存的方式改进系统性能,有助于信息传递。
通过对消息的约束,把REST的中间处理变为一个独立的自我描述:无状态交互,使用标准的方法和媒体类型。通过这种方式使语义信息,交互数据,响应信息能够明确的显示其使用缓存的能力。