调用凭证
accessToken是是用户请求API接口的唯一凭证且是必需的参数之一。本文介绍如何获取接口调用凭证。
# 接口说明
- 在token有效期内,每次重新获取token将导致之前获取的token失效,请避免频繁获取。
- 当业务场景涉及多应用(产品)对接 CubeRPA API,建议搭建一个中继服务器,用于统一管理壹沓token的获取及更新操作,避免出现token被覆盖的情况。
# 请求地址
GET https://openapi.1datatech.net/token/auth/api/accessToken?grant_type=client_credential&access_key=ACCESS_KEY&secret=SECRET
1
如果您使用的客户端为CubeRPA-专属版,请访问以下地址:
http://x.x.x.x/cube-center-open-api/openApi/token/accessToken
,其中x.x.x.x
为用户服务器地址。
# 请求元素
参数名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
grant_type | string | 是 | client_credential | 客户端证书,固定值:client_credential。 |
access_key | string | 是 | - | AccessKey ID。获取方式,请参见OpenAPI管理 (opens new window)。 |
secret | string | 是 | - | AccessKey Secret。获取方式,请参见OpenAPI管理 (opens new window)。 |
# 响应元素
参数名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
accessToken | string | eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMjEwIiwiYWNjZXNzS2V5IjoiaEVTTGxHMFJBOGlEbjUzc1Bhb0JOeGJPekgiLCJ0ZW5hbnRJZCI6MzUsImlzcyI6ImhFU0xsRzBSQThpRG41M3NQYW9CTnhiT3pIIiwiYXBwY29kZSI6bnVsbCwiZnJvbSI6bnVsbCwiYWNjZXNzVG9rZW4iOiJleUpoYkdjaU9pSklVelV4TWlKOS5leUp6ZFdJaU9pSXhNakV3SWl3aVlXTmpaWE56UzJWNUlqb2lhRVZUVEd4SE1GSkJPR2xFYmpVemMxQmhiMEpPZUdKUGVrZ2lMQ0owWlc1aGJuUkpaQ0k2TXpVc0ltbHpjeUk2SW1oRlUweHNSekJTUVRocFJHNDFNM05RWVc5Q1RuaGlUM3BJSWl3aVlYQndZMjlrWlNJNmJuVnNiQ3dpWm5KdmJTSTZiblZzYkN3aVlXTmpaWE56Vkc5clpXNGlPbTUxYkd3c0ltRjFkR2hVZVhCbElqb3lMQ0psZUhBaU9qRTJPRFUyTnpZek9ERXNJbWxoZENJNk1UWTROVFU0T1RrNE1Td2ljM1JoWm1aSlpDSTZNVEl4TUgwLklIaTZaWG43ZkJFbUVKYkRSWld6LVJmZHB2X19TNzBRcmM1US1ESWR5VHloN3g5ZVFhb25GMF9HLTYyZW5SUzlFZDF0cFVYaWVsdTNZNU5pVjRXSjhBIiwiYXV0aFR5cGUiOjIsImV4cCI6MzI1MDM2NTExOTksImlhdCI6MTY4NTU4OTk4MSwic3RhZmZJZCI6MTIxMH0.jx8tKKG-2iM0G-vIM-wWh9AEDRM_6UK9-neeC9g623-T9SXtLSk4zRYglisnFEcPe1d_sCKSIBFvzl5D4ca4XX | accessToken。API接口调用必传系统参数之一。 |
expiresIn | int | 86400 | accessToken有效期,单位:秒。 |
# 示例
# 请求示例
https://openapi.1datatech.net/token/auth/api/accessToken?grant_type=client_credential&access_key=hESLlG0RA8iDn53sPaoBNxbOzZ&secret=CtuhGW7ojfV1ZQqBalBvwdisXpPMcC
1
# 响应示例
{
"success": true,
"code": 200,
"message": null,
"data": {
"accessToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMjEwIiwiYWNjZXNzS2V5IjoiaEVTTGxHMFJBOGlEbjUzc1Bhb0JOeGJPekgiLCJ0ZW5hbnRJZCI6MzUsImlzcyI6ImhFU0xsRzBSQThpRG41M3NQYW9CTnhiT3pIIiwiYXBwY29kZSI6bnVsbCwiZnJvbSI6bnVsbCwiYWNjZXNzVG9rZW4iOiJleUpoYkdjaU9pSklVelV4TWlKOS5leUp6ZFdJaU9pSXhNakV3SWl3aVlXTmpaWE56UzJWNUlqb2lhRVZUVEd4SE1GSkJPR2xFYmpVemMxQmhiMEpPZUdKUGVrZ2lMQ0owWlc1aGJuUkpaQ0k2TXpVc0ltbHpjeUk2SW1oRlUweHNSekJTUVRocFJHNDFNM05RWVc5Q1RuaGlUM3BJSWl3aVlYQndZMjlrWlNJNmJuVnNiQ3dpWm5KdmJTSTZiblZzYkN3aVlXTmpaWE56Vkc5clpXNGlPbTUxYkd3c0ltRjFkR2hVZVhCbElqb3lMQ0psZUhBaU9qRTJPRFUyTnpZek9ERXNJbWxoZENJNk1UWTROVFU0T1RrNE1Td2ljM1JoWm1aSlpDSTZNVEl4TUgwLklIaTZaWG43ZkJFbUVKYkRSWld6LVJmZHB2X19TNzBRcmM1US1ESWR5VHloN3g5ZVFhb25GMF9HLTYyZW5SUzlFZDF0cFVYaWVsdTNZNU5pVjRXSjhBIiwiYXV0aFR5cGUiOjIsImV4cCI6MzI1MDM2NTExOTksImlhdCI6MTY4NTU4OTk4MSwic3RhZmZJZCI6MTIxMH0.jx8tKKG-2iM0G-vIM-wWh9AEDRM_6UK9-neeC9g623-T9SXtLSk4zRYglisnFEcPe1d_sCKSIBFvzl5D4ca4XX",
"expiresIn": 86400
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# Java代码示例
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public static void request() {
String accessKey = "your access key";
String secretKey = "your secret key";
String httpurl = "https://openapi.1datatech.net/token/auth/api/accessToken?grant_type=client_credential&access_key=%s&secret=%s";
httpurl = String.format(httpurl,accessKey,secretKey);
HttpURLConnection connection = null;
InputStream is = null;
BufferedReader br = null;
// 返回结果字符串
String result = null;
try {
URL url = new URL(httpurl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(15000);
connection.setReadTimeout(60000);
connection.connect();
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
connection.disconnect();
}
JSONObject resultJson = JSONObject.parseObject(result);
JSONObject dataJson = resultJson.getJSONObject("data");
System.out.println("accessToken : "+dataJson.getString("accessToken"));
System.out.println("expiresIn : "+dataJson.getInteger("expiresIn"));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Python代码示例
import requests
import traceback
def get_accessToken_func(httpUrl, accessKey, secretKey):
"""
通过accessKey、secretKey进行get请求获取accessToken
:param httpUrl: 待请求接口地址 <str>
:param accessKey: Access Key Id <str>
:param secretKey: Secret Access Key <str>
:returns 返回值为accessToken <str>、expiresIn(有效期) <int>
"""
params = {
"grant_type": "client_credential",
"access_key": accessKey,
"secret": secretKey
}
try:
res = requests.get(url=httpUrl, params=params)
res_json = res.json()
accessToken = res_json.get("data").get("accessToken")
expiresIn = res_json.get("data").get("expiresIn")
return accessToken, expiresIn
except Exception as e:
print(e, traceback.format_exc())
if __name__ == "__main__":
httpUrl = "https://openapi.1datatech.net/token/auth/api/accessToken"
accessKey = "your access key"
secretKey = "your secret key"
result = get_accessToken_func(httpUrl, accessKey, secretKey)
if result:
accessToken, expiresIn = result
print("accessToken : {}".format(accessToken))
print("expiresIn : {}".format(expiresIn))
else:
print("获取accessToken失败")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
最近更新时间: {
"value": "2023-08-21",
"effect": true
}