获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret 调用本接口来获取 access_token AppID 和 AppSecret( 联系 ZEGO 技术支持获得 ) 注意调用所有接口时均需使 用 https 协议 1 接口调用请求说明 http 请求方式 : GET 正式环境地址 https://webapi.zego.im/cgi/token? appid=appid&secret=appsecret (https://webapi.zego.im/cgi/token? appid=appid&secret=appsecret) 测试环境地址 https://testwebapi.zego.im/cgi/token? appid=appid&secret=appsecret (https://testwebapi.zego.im/cgi/token? appid=appid&secret=appsecret) 2 参数说明
参数名 是否必 须 说明 appid 是第三方用户唯一凭证 secret 是第三方用户唯一凭证密钥, 即 appsecret, 请联系 技术支持获取 3 返回说明 正常情况下, 会返回下述 JSON 数据包给调用方 : { "code": 0, "data": { "access_token": "c205dytwqtd4zlzjsjbltxy0v3fzyutby1q9zeo0egfjcet 3WVBKSlFGeXh5aGZITjJWYnlBcT0", "expires_in": 7200, "message": "success" 4 参数说明 参数名 说明 code message access_token 返回码 操作结果描述 获取到的凭证
expires_in 凭证有效时间, 单位 : 秒 错误时会返回错误码等信息,JSON 数据包示例如下 ( 该示例为 AppSecret 无 效错误 ): { "code": 40005, "message": "appsecret 错误 " 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 InputStre amreader(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, Str ing 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 "; // 发送 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()