提交工单
咨询集成、功能及报价等问题
服务端 API 版块于4月16日至5月15日升级维护,期间暂停信息更新,如有任何疑问,请联系ZEGO技术支持。
access_token 是接口的全局唯一票据,接入方调用各接口时都需使用 access_token。开发者需要进行妥善保存。access_token 的存储至少要保留 512 个字符空间。access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。
接入方可以使用 AppID 和 ServerSecret 调用本接口来获取 access_token。AppID 和 ServerSecret( ZEGO 控制台 自主获得)。注意调用所有接口时均需使用 https 协议。
http 请求方式: GET
正式环境地址
https://webapi.zego.im/cgi/token?appid=APPID&secret=ServerSecret×tamp=TimeStamp
测试环境地址
https://testwebapi.zego.im/cgi/token?appid=APPID&secret=ServerSecret×tamp=TimeStamp
参数名 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 第三方用户唯一凭证 |
secret | 是 | 第三方用户唯一凭证密钥,即 ServerSecret,请 ZEGO 控制台 自主获取。 |
timestamp | 是 | 时间戳(毫秒级别),取 unix 当前时间戳 |
正常情况下,会返回下述 JSON 数据包给调用方:
{
"code": 0,
"data": {
"access_token": "c205dytwQTd4ZlZjSjBLTXY0V3FzYUtBY1Q9ZEo0eGFJcEt3WVBKSlFGeXh5aGZITjJWYnlBcT0",
"expires_in": 7200
},
"message": "success"
}
参数名 | 说明 |
---|---|
code | 返回码 |
message | 操作结果描述 |
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒 |
错误时会返回错误码等信息,JSON 数据包示例如下(该示例为 ServerSecret 无效错误):
{
"code": 40005,
"message": "appsecret error"
}
public class GetToken {
// 发送 get 请求
public static String sendGet(String url, String param) {
String result = "";
String urlName = url + "?" + param;
try {
URL realUrl = new URL(urlName);
URLConnection conn = realUrl.openConnection();
conn.connect();
Map<String, List<String>> map = conn.getHeaderFields();
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
try (
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"))
){
String line;
while ((line = in.readLine()) != null) {
result += "\n" + line;
}
}
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
return result;
}
// 从指定url中获取access_token, 注意accessToken_request_url参数测试环境和正式环境的区别
public static String getToken(String appid, String serverSecret, String accessToken_request_url){
// 从请求access_token的url中获取返回的数据
String retStr_getTokenUrl = GetToken.sendGet(accessToken_request_url, "appid="+appid+"&secret="+serverSecret);
// 解析并获取access_token
String access_token = JSONObject.parseObject(retStr_getTokenUrl).getJSONObject("data").getString("access_token");
return access_token;
}
}
<?php
$appid = "123456789";
$secret = "xxxxx";
$token = "";
// 从指定 url 中获取 access_token, 注意 accessToken_request_url 参数测试环境和正式环境的区别
$url = "https://webapi.zego.im/cgi/token?appid={$appid}&secret={$secret}×tamp={$timestamp}";
// 发送 get 请求
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
curl_close($curl);
// 解析并获取 access_token
$result = json_decode($result, true);
if (!isset($result["data"])) {
print_r($result["message"]);
} else {
$token = $result["data"]["access_token"];
print_r($token);
}
from urllib import request, parse
import json
def getToken():
# 初始化获取 access_token 的变量
access_token = ""
# 请求 token 的 url, 注意正式环境与测试环境的区别
accessToken_request_url = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 通过请求 accessToken_request_url 获取 access_token
with request.urlopen(request.Request(accessToken_request_url)) as f:
respond_str = f.read().decode("utf-8")
access_token = json.loads(respond_str)["data"]["access_token"]
return access_token
if __name__ == '__main__':
# token 有效时间为两个小时, 业务侧应对 token 获取之后进行保存,有效时间内一定时间间隔(例如 3600s)获取一次, 切忌频繁获取
getToken()
联系我们
文档反馈