使用Agora RESTful API创建聊天用户遇401未授权错误求助
我在使用Agora服务时,通过RESTful API创建聊天用户触发了401 Unauthorized错误,已排除Token过期可能,错误提示为:"Registration is not open, please contact the app admin."(中文翻译:注册未开放,请联系应用管理员)
配置信息
- domain:从「Project List/Project Detail/Chat - Application Information - REST API」获取
- appKey:从「Project List/Project Detail/Chat - Application Information - App Key」获取
代码实现
private String registerChatUser(String chatUserName) { String orgName = appKey.split("#")[0]; String appName = appKey.split("#")[1]; String url = "https://" + domain + "/" + orgName + "/" + appName + "/users"; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); String token = getToken(); headers.setBearerAuth(token); Map<String, String> body = new HashMap<>(); body.put("username", chatUserName); body.put("password", "123"); HttpEntity<Map<String, String>> entity = new HttpEntity<>(body, headers); ResponseEntity<Map> response; System.out.println(entity); try { response = restTemplate.exchange(url, HttpMethod.POST, entity, Map.class); } catch (Exception e) { throw new RestClientException("register chat user error : " + e.getMessage()); } List<Map<String, Object>> results = (List<Map<String, Object>>) response.getBody().get("entities"); return (String) results.get(0).get("uuid"); }
触发的错误
register chat user error : 401 Unauthorized
解决办法
这个错误的核心原因是你的Agora Chat项目未开放用户注册权限,和Token是否过期无关,按以下步骤操作:
- 登录Agora控制台,进入对应Chat项目的配置界面
- 找到「用户注册」相关设置,查看当前注册模式
- 如果是「关闭注册」状态,只有管理员账号能创建用户,普通业务Token无法调用注册接口
- 若需通过API自主创建用户,将注册模式切换为开放注册,保存配置后重新调用接口即可
额外验证项:
- 确认
getToken()生成的Token是否包含user:create权限(如果采用了权限细分的Token策略) - 检查拼接的请求URL是否正确,避免因路径错误导致权限验证失败
内容的提问来源于stack exchange,提问作者이한녕
相关产品推荐
相关产品推荐

