# 快速入门
对接云平台的说明文档,说明如何调用卡莱特云平台现有接口,间接控制播放盒。
# 接入必读
# 请求地址
http(s):/{domainName}/
# 认证
云平台 API 采用 BASIC AUTH 认证
# 帐号申请
云平台账号申请可联系卡莱特技术人员
# API 配置指引
# 概述
在 HTTP 中,基础认证是一种以HTTP请求头部为载体来传递账号和口令信息的规范。用户在向云平台 API发送请求时,需要依照 HTTP 基础认证的规范,在HTTP请求头中带上API账号和口令信息,云平台会根据 HTTP 请求头中的API账号和口令校验请求是否合法。
在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。
# HTTP Header 信息
以下是使用HTTP基本认证方法调用REST API时,部分HTTP头部信息:
GET /quickstart/testauth HTTP/1.1
Host: api.tapd.cn
Authorization: Basic [auth_key]
Authorization 部分用于传递身份验证信息。其中,[auth_key]字段是BASE64编码后的userName:password 串。
# 使用TOKEN认证
首次登录云平台的接口是https:///wp-login.php,成功登陆后,服务器会返回一个token认证信息,以JCESSIONID形成呈现: JSESSIONID=11E7CF5214352342B36AFA2EC25DFDA3
对于每个后续请求,只需在接口请求头中携带这个会话标识符(令牌),通过Cookie信息 Cookie: JSESSIONID=11E7CF5214352342B36AFA2EC25DFDA3
这样就能够完成接口访问,而无需携带 Basic 认证信息。
# 常用语言调用示例
# curl 方式调用
如果用户是通过curl方式调用,请求时只需简单把API账号和口令作为调用参数提供即可。使用 curl 的调用例子如下:
curl -u userName:password https://{{domainName}}/wp-json/wp/v2/leds
# PHP 调用
<?php
$url = "https://{{domainName}}/wp-json/wp/v2/leds";
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, "userName:password"); # 设置 API 帐号密码
curl_setopt($curl, CURLOPT_URL, $url);
$ret = curl_exec($curl); # 获取接口返回结果
curl_close($curl);
var_dump($ret); # 输出结果
# Python 调用
使用 Python 语言调用云平台 API,推荐使用 requests 库,requests 安装文档:http://docs.python-requests.org/zh_CN/latest/user/install.html#install (opens new window) 及 requests 快速上手文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html (opens new window)
import requests
r = requests.get('https://{{domainName}}/wp-json/wp/v2/leds', auth=('api_user', 'api_password'))
ret = r.text # 获取接口返回结果
print(ret) # Python 3
print ret # Python 2
# Java 调用:
示例使用的是OkHttpClient
OkHttpClient client = new OkHttpClient().newBuilder().build();
String plainCredentials = "userName:password";
String encodeCredential = Base64.getEncoder()
.encodeToString(plainCredentials.getBytes(StandardCharsets.US_ASCII));
// Basic + 空格 + base64 encode 账号:密码 之后的字符串
String BasicAuthorization = "Basic " + encodeCredential;
Request request = new Request.Builder()
.url("https://{{domainName}}/wp-json/wp/v2/leds")
.method("GET", null)
.addHeader("Authorization", BasicAuthorization)
//.addHeader("Cookie", "JSESSIONID=A00C3B916A6F8551330766E99AED5520")
// 登录后如果能拿到cookie也可通过cookie认证。Basic认证或者cookie认证都可以。
.build();
Response response = client.newCall(request).execute();
# API 错误码
错误码 | 说明 | 排查建议 |
---|---|---|
400 Bad request | 1. 参数传入错误 | 检查参数是否在允许的范围内 |
401 Unauthorized | 1.账号密码没有传 2.账号密码错误 3.代码问题 | 检查是否有传账号密码以及核实是否正确 |
403 Forbidden | 1. 对用户,节目,素材等资源的访问或操作没有权限 | 检查账号密码和传入的用户ID,节目ID,素材ID等是否正确 |
500 Server Error | 1. 服务器内部错误 | 联系云服务器技术人员 |