文档中心
ServerSideAPI 服务端 API
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • 服务端 API
  • 后台混流接口
  • 获取AccessToken

服务端 API 版块于4月16日至5月15日升级维护,期间暂停信息更新,如有任何疑问,请联系ZEGO技术支持。

获取Access Token

更新时间:2025-04-15 19:16

access_token 是接口的全局唯一票据,接入方调用各接口时都需使用 access_token。开发者需要进行妥善保存。access_token 的存储至少要保留 512 个字符空间。access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。

接入方可以使用 AppID 和 ServerSecret 调用本接口来获取 access_token。AppID 和 ServerSecret( ZEGO 控制台 自主获得)。注意调用所有接口时均需使用 https 协议。

1 接口调用请求说明

http 请求方式: GET
正式环境地址
https://webapi.zego.im/cgi/token?appid=APPID&secret=ServerSecret&timestamp=TimeStamp
测试环境地址
https://testwebapi.zego.im/cgi/token?appid=APPID&secret=ServerSecret&timestamp=TimeStamp

2 参数说明

参数名 是否必须 说明
appid 是 第三方用户唯一凭证
secret 是 第三方用户唯一凭证密钥,即 ServerSecret,请 ZEGO 控制台 自主获取。
timestamp 是 时间戳(毫秒级别),取 unix 当前时间戳

3 返回说明

正常情况下,会返回下述 JSON 数据包给调用方:

{
    "code": 0,
    "data": {
        "access_token": "c205dytwQTd4ZlZjSjBLTXY0V3FzYUtBY1Q9ZEo0eGFJcEt3WVBKSlFGeXh5aGZITjJWYnlBcT0",
        "expires_in": 7200
    },
    "message": "success"
}

4 参数说明

参数名 说明
code 返回码
message 操作结果描述
access_token 获取到的凭证
expires_in 凭证有效时间,单位:秒

错误时会返回错误码等信息,JSON 数据包示例如下(该示例为 ServerSecret 无效错误):

{
    "code": 40005,
    "message": "appsecret error"
}

5 示例代码

5.1 Java 示例代码

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;
    }
}

5.2 php 示例代码

<?php
$appid = "123456789";
$secret = "xxxxx";
$token = "";
// 从指定 url 中获取 access_token, 注意 accessToken_request_url 参数测试环境和正式环境的区别
$url = "https://webapi.zego.im/cgi/token?appid={$appid}&secret={$secret}&timestamp={$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);
}

5.3 python 示例代码

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()
本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈