diff --git a/docs/.vuepress/public/images/applet/service_overview.png b/docs/.vuepress/public/images/applet/service_overview.png index c4c449bc..812d3764 100644 Binary files a/docs/.vuepress/public/images/applet/service_overview.png and b/docs/.vuepress/public/images/applet/service_overview.png differ diff --git a/docs/.vuepress/public/images/server-side/token_authentication_app_token_generate.png b/docs/.vuepress/public/images/server-side/token_authentication_app_token_generate.png new file mode 100644 index 00000000..caef27ab Binary files /dev/null and b/docs/.vuepress/public/images/server-side/token_authentication_app_token_generate.png differ diff --git a/docs/.vuepress/public/images/server-side/token_authentication_user_register.png b/docs/.vuepress/public/images/server-side/token_authentication_user_register.png new file mode 100644 index 00000000..f1d60599 Binary files /dev/null and b/docs/.vuepress/public/images/server-side/token_authentication_user_register.png differ diff --git a/docs/.vuepress/public/images/server-side/token_authentication_user_token_generate.png b/docs/.vuepress/public/images/server-side/token_authentication_user_token_generate.png new file mode 100644 index 00000000..f9cbcff7 Binary files /dev/null and b/docs/.vuepress/public/images/server-side/token_authentication_user_token_generate.png differ diff --git a/docs/.vuepress/sidebar/document.ts b/docs/.vuepress/sidebar/document.ts index 8e12fe60..9fa709bb 100644 --- a/docs/.vuepress/sidebar/document.ts +++ b/docs/.vuepress/sidebar/document.ts @@ -377,6 +377,7 @@ const documentSidebar = [ { text: 'RESTful API 概览', link: 'overview.html' }, { text: '消息', + collapsible: true, children: [ { text: '发送单聊消息', link: 'message_single.html' }, { text: '发送群聊消息', link: 'message_group.html' }, @@ -394,6 +395,7 @@ const documentSidebar = [ }, { text: '群组', + collapsible: true, children: [ { text: '管理群组', link: 'group_manage.html' }, { text: '管理群组文件', link: 'group_file.html' }, @@ -414,6 +416,7 @@ const documentSidebar = [ }, { text: '聊天室', + collapsible: true, children: [ { text: '管理超级管理员', link: 'chatroom_superadmin.html' }, { text: '管理聊天室', link: 'chatroom_manage.html' }, @@ -434,6 +437,7 @@ const documentSidebar = [ }, { text: '用户相关', + collapsible: true, children: [ { text: '用户体系管理', link: 'account_system.html' }, { text: '用户属性', link: 'userprofile.html' }, @@ -445,6 +449,7 @@ const documentSidebar = [ }, { text: '离线推送', + collapsible: true, children: [ { text: '离线推送设置', link: 'push.html' }, { text: '离线推送的消息扩展', link: 'push_extension.html' }, diff --git a/docs/document/server-side/overview.md b/docs/document/server-side/overview.md index 89c87d35..3a13c0c9 100644 --- a/docs/document/server-side/overview.md +++ b/docs/document/server-side/overview.md @@ -1,4 +1,4 @@ -# 环信即时通讯 RESTful API 概览 +# 即时通讯 RESTful API 概览 @@ -22,7 +22,7 @@ ## 前提条件 -要调用环信即时通讯 RESTful API,请确保满足以下要求: +要调用即时通讯 RESTful API,请确保满足以下要求: - 已在[声网控制台](https://console.shengwang.cn/overview) [开通配置声网即时通讯 IM 服务](enable_im.html)。 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](token_authentication.html)。 @@ -40,15 +40,19 @@ ## 请求域名 -环信不同数据中心的 RESTful API 请求域名 {host}: +声网不同数据中心的 RESTful API 请求域名 {host}: -应用所在数据中心可以在环信用户管理后台 > 应用列表找到对应的 App Key 点击 **管理** > **即时通讯** > **服务概览** 中查看: +1. 登录[声网控制台](https://console.shengwang.cn/overview)。 + +2. 在左上角下拉框中选择想要开通消息回调服务的项目,然后点击左侧导航栏的**全部产品**,点击**基础能力**分组下的**即时通讯 IM**,进入**功能配置**标签页。 + +你可以在 **基础信息**页面的**访问域名**区域看到 RESTful API 的请求域名,如下图所示: ![img](/images/applet/service_overview.png) :::tip -1. 为满足不同客户的业务需求,环信在多地部署了数据中心。不同数据中心的 REST API 请求域名不同。请根据您所在数据中心选择请求域名。 -2. 国内 VIP 区、客服专区客户请联系商务经理索要 RESTful API 请求地址。 +1. 为满足不同客户的业务需求,声网在多地部署了数据中心。不同数据中心的 REST API 请求域名不同。请根据您所在数据中心选择请求域名。 +2. 国内 VIP 区、客服专区客户请联系商务经理提供 RESTful API 请求地址。 3. 支持 HTTP 和 HTTPS。 ::: @@ -65,4 +69,4 @@ ## RESTful API 概览 -关于各 RESTful API 的方法、接口 URL、简要介绍以及调用频率上限,详见 [Restful API 调用频率限制](limitationapi.html)。 \ No newline at end of file +关于各 RESTful API 的方法、接口 URL、简要介绍以及调用频率上限,详见 [RESTful API 调用频率限制](limitationapi.html)。 \ No newline at end of file diff --git a/docs/document/server-side/token_authentication.md b/docs/document/server-side/token_authentication.md index f8abb95f..e7fd360d 100644 --- a/docs/document/server-side/token_authentication.md +++ b/docs/document/server-side/token_authentication.md @@ -21,21 +21,29 @@ 参考以下步骤注册用户: -1. 在**项目管理**页面,点击你要使用的项目的**操作**一栏中的**配置**。 +1. 登录[声网控制台](https://console.shengwang.cn/overview)。 -2. 在**服务配置**页面,点击**即时通讯**中的**配置**。 +2. 在左上角下拉框中选择想要开通消息回调服务的项目,然后点击左侧导航栏的**全部产品**,点击**基础能力**分组下的**即时通讯 IM**,进入**运营管理**标签页。 -3. 在左侧导航栏,选择**运营管理** > **用户**,点击**创建IM用户**。 +3. 在**用户**页签下,点击**创建IM用户**。 -4. 在**创建IM用户**对话框中,填写用户信息并点击**保存**,创建用户。 +4. 在**添加IM用户**对话框中,填写用户信息并点击**保存**,创建用户。 + +![img](/images/server-side/token_authentication_user_register.png) #### 生成 Token -在左侧导航栏选择**基本信息 > 应用信息**,在**数据中心**区域的 **Chat User Temp Token** 框中输入用户 ID,点击**生成**生成一个用户权限 Token,可用于调用 SDK 的 API。 +创建用户后,在**用户管理**列表中,你可以点击该用户的**操作**一栏中的**查看Token**。在弹出的**查看IM用户Token**对话框中,查看该用户的 Token 或点击**重新生成**生成新的用户权限 Token。 + +![img](/images/server-side/token_authentication_user_token_generate.png) ### 生成 App 权限 Token -在左侧导航栏选择**基本信息 > 应用信息**,点击**数据中心**区域的 **Chat App Temp Token** 对应的 **生成** 生成一个 App 权限 Token,可用于调用 RESTful API。 +1. 在[声网控制台](https://console.shengwang.cn/overview)左上角下拉框中选择想要开通消息回调服务的项目,然后点击左侧导航栏的**全部产品**,点击**基础能力**分组下的**即时通讯 IM**,进入**基础信息**标签页。 + +2. 在**数据中心**区域,点击 **ChatAppTempToken** 旁边的 **生成**,生成临时 App 权限 Token。 + +![img](/images/server-side/token_authentication_app_token_generate.png) 为了安全考虑,在生产环境中 Token 由你的 App Server 使用 AgoraTools 生成。本文介绍如何从你的 App Server 中获取 Token 实现用户鉴权。 @@ -51,9 +59,9 @@ ## 前提条件 -- 有效的[声网账号](https://docs.agora.io/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms#创建声网账号)。 -- 拥有 [App 证书](https://docs.agora.io/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms#获取-App-证书)和已开通即时通讯的[声网项目](https://docs.agora.io/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms#创建声网项目)。详见[开启和配置即时通讯服务](./enable_agora_chat)。 -- 你的声网项目的 App ID、OrgName 和 AppName,详见[开启和配置即时通讯服务](./enable_agora_chat)。 +- 有效的[声网账号](https://docportal.shengwang.cn/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms#创建声网账号)。 +- 拥有 [App 证书](https://docportal.shengwang.cn/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms=All%20Platforms#获取-App-证书)和已开通即时通讯的[声网项目](https://docportal.shengwang.cn/cn/Agora%20Platform/get_appid_token?platform=All%20Platforms#创建声网账号)。 +- 你的声网项目的 App ID,详见[开启和配置即时通讯服务](enable_im.html#4-获取-app-id)。 - [Node.js 和 npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)。 如果你的网络环境部署了防火墙,为允许你在有网络访问限制的环境中使用即时通讯服务,声网提供防火墙白名单方案。如需使用请[联系技术支持](https://docs.agora.io/cn/Agora%20Platform/ticket?platform=All%20Platforms),我们的技术服务会提供目标域名及对应的端口。 @@ -209,7 +217,7 @@ public class AgoraChatTokenController { /** * 获取 user 权限 token - * @param chatUserId chat 用户 id + * @param chatUserId 声网 IM 的用户 ID * @return user 权限 token */ @GetMapping("/chat/user/{chatUserId}/token") @@ -228,22 +236,22 @@ public class AgoraChatTokenController { } /** - * 生成 Agora Chat app token - * @return Agora Chat app token + * 生成声网 IM app 权限 token + * @return 声网 IM app 权限 token */ private String getAgoraAppToken() { if (!StringUtils.hasText(appid) || !StringUtils.hasText(appcert)) { throw new IllegalArgumentException("appid or appcert is not empty"); } - // Use agora App Id、App Cert to generate agora app token + // 利用声网 App Id、App Cert 生成 app 权限 token ChatTokenBuilder2 builder = new ChatTokenBuilder2(); return builder.buildAppToken(appid, appcert, expirePeriod); } /** - * 从缓存中获取 Agora Chat App Token - * @return Agora Chat App Token + * 从缓存中获取声网 IM 的 app 权限 token + * @return 声网 IM app 权限 token */ private String getAgoraChatAppTokenFromCache() { try { @@ -307,9 +315,7 @@ return builder.buildAppToken(appid, appcert, expirePeriod); ```shell curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H "Authorization: Bearer " -i "https://XXXX/XXXX/users" -d '[ { - "username": "user1", - "password": "123", - "nickname": "testuser" + "username": "user1" } ]' ``` @@ -344,7 +350,7 @@ return builder.buildAppToken(appid, appcert, expirePeriod); 本节以 Web 客户端为例,介绍如何使用用户权限 Token 在客户端进行鉴权。 -请联系商务开通自动注册即使通讯 IM 用户的功能,这样可以使用 chatUserId 生成用户权限 Token 后,在登录即时通讯 IM 时,如果 chatUserId 未注册,那么IM 服务会自动使用 chatUserId 进行注册 IM 用户并登录。chatUserId 请符合 IM 用户名的规范。 +请联系商务开通自动注册即时通讯 IM 用户的功能,这样可以使用 chatUserId 生成用户权限 Token 后,在登录即时通讯 IM 时,如果 chatUserId 未注册,那么 IM 服务会自动使用 chatUserId 进行注册 IM 用户并登录。chatUserId 请符合 [IM 用户名的规范](account_system.html#注册单个用户)。 在 App Server 中生成用户权限 Token 的核心代码: @@ -448,7 +454,7 @@ return builder.buildUserToken(appid, appcert, chatUserId, expirePeriod); 6. 实现 App 逻辑。 - 复制以下代码到 `index.js` 文件中,将 `` 替换为你的 [App Key](./enable_agora_chat#获取即时通讯项目信息) 。 + 复制以下代码到 `index.js` 文件中,将 `` 替换为你的 App Key 。 在下列示例代码中可以看到,就客户端而言,用户权限 Token 和以下代码逻辑有关: @@ -584,4 +590,4 @@ Token 过期后自动重连可确保终端用户在后台运行应用时保持 ### Token 和 RTC 产品 -如果你在使用即时通讯 IM 的同时也正在使用[声网 RTC SDK](https://docs.agora.io/cn/Agora%20Platform/term_agora_rtc_sdk),即时通讯 IM 建议你升级到 [Access Token 2](./access_token_2)。 \ No newline at end of file +如果你在使用即时通讯 IM 的同时也正在使用[声网 RTC SDK](https://docs.agora.io/cn/Agora%20Platform/term_agora_rtc_sdk),即时通讯 IM 建议你升级到 Access Token 2。 \ No newline at end of file