From dc4f4d28821f775a75274b5827d47ec202795a60 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Sat, 11 Oct 2025 11:33:44 +0800 Subject: [PATCH 1/8] Replace Old Console Content --- .../public/images/applet/service_overview.png | Bin 60856 -> 146091 bytes docs/document/android/connection.md | 2 +- docs/document/android/error.md | 4 +-- docs/document/android/login.md | 6 ++-- docs/document/android/push/push_fcm.md | 2 +- docs/document/android/push/push_honor.md | 2 +- docs/document/android/push/push_overview.md | 4 +-- docs/document/android/releasenote.md | 2 +- docs/document/applet/alipay.md | 4 +-- docs/document/applet/baidu.md | 4 +-- docs/document/applet/bytedance.md | 4 +-- docs/document/applet/connection.md | 2 +- docs/document/applet/initialization.md | 4 +-- docs/document/applet/login.md | 4 +-- docs/document/applet/qq.md | 4 +-- docs/document/applet/serverconfig.md | 2 +- docs/document/applet/uniapp.md | 2 +- docs/document/applet/wechat.md | 4 +-- docs/document/flutter/connection.md | 2 +- docs/document/flutter/login.md | 4 +-- docs/document/flutter/overview.md | 4 +-- .../flutter/push/push_easemob_console.md | 2 +- docs/document/harmonyos/connection.md | 2 +- docs/document/harmonyos/error.md | 4 +-- docs/document/harmonyos/login.md | 4 +-- docs/document/harmonyos/overview.md | 4 +-- docs/document/harmonyos/push/push_template.md | 6 ++-- docs/document/ios/connection.md | 2 +- docs/document/ios/error.md | 4 +-- docs/document/ios/login.md | 4 +-- docs/document/ios/push/push_overview.md | 2 +- docs/document/ios/push/push_template.md | 4 +-- docs/document/react-native/connection.md | 2 +- docs/document/react-native/login.md | 4 +-- docs/document/react-native/overview.md | 4 +-- .../react-native/push/push_overview.md | 2 +- .../push/push_send_token_to_server.md | 2 +- docs/document/react-native/releasenote.md | 2 +- docs/document/server-side/account_system.md | 4 +-- docs/document/server-side/callback_contact.md | 12 ++++---- .../server-side/callback_group_ban.md | 2 +- .../server-side/callback_group_block.md | 4 +-- .../server-side/callback_group_read_ack.md | 2 +- .../server-side/callback_group_room_admin.md | 4 +-- .../callback_group_room_allowlist.md | 4 +-- .../callback_group_room_announcement.md | 2 +- .../callback_group_room_blocklist.md | 4 +-- .../server-side/callback_group_room_create.md | 2 +- .../server-side/callback_group_room_delete.md | 2 +- .../server-side/callback_group_room_info.md | 2 +- .../server-side/callback_group_room_join.md | 6 ++-- .../server-side/callback_group_room_leave.md | 8 ++--- .../server-side/callback_group_room_mute.md | 4 +-- .../callback_group_room_muteall.md | 2 +- .../server-side/callback_group_room_owner.md | 2 +- .../server-side/callback_group_shared_file.md | 4 +-- .../server-side/callback_login_logout.md | 6 ++-- .../server-side/callback_message_modify.md | 16 +++++----- .../server-side/callback_message_recall.md | 2 +- .../server-side/callback_message_send.md | 2 +- .../document/server-side/callback_overview.md | 2 +- .../server-side/callback_postsending.md | 8 ++--- .../server-side/callback_room_superadmin.md | 4 +-- .../callback_single_conversation_ack.md | 2 +- .../server-side/callback_single_read_ack.md | 2 +- docs/document/server-side/java_server_sdk.md | 2 +- .../server-side/java_server_sdk_2.0.md | 2 +- docs/document/server-side/message_download.md | 4 +-- docs/document/server-side/message_recall.md | 4 +-- docs/document/server-side/overview.md | 2 +- docs/document/server-side/push.md | 29 ++++++++---------- docs/document/unity/connection.md | 2 +- docs/document/unity/error.md | 4 +-- docs/document/unity/login.md | 4 +-- docs/document/unity/overview.md | 4 +-- docs/document/unity/quickstart.md | 2 +- docs/document/web/connection.md | 2 +- docs/document/web/error.md | 6 ++-- docs/document/web/login.md | 4 +-- docs/document/web/message_send.md | 2 +- docs/document/windows/connection.md | 2 +- docs/document/windows/error.md | 4 +-- docs/document/windows/login.md | 4 +-- docs/document/windows/overview.md | 4 +-- docs/product/data_center.md | 2 +- docs/product/faq_quality_issues.md | 23 ++++++++------ docs/product/message_single_chat.md | 4 +-- .../moderation/moderation_record_callback.md | 2 +- docs/product/pricing_method.md | 29 ++++++++---------- docs/product/product_function.md | 4 +-- docs/product/product_user_relationship.md | 4 +-- docs/push/push_androidvendor_statistics.md | 2 +- docs/push/push_integration_note_ios.md | 4 +-- .../chatuikit/android/chatfeature_message.md | 6 ++-- .../chatuikit/flutter/chatfeature_message.md | 6 ++-- .../flutter/chatuikit_advancedusage.md | 6 ++-- .../chatuikit/ios/chatfeature_message.md | 6 ++-- .../react-native/chatfeature_message.md | 6 ++-- .../chatuikit/web/chatfeature_message.md | 6 ++-- 99 files changed, 214 insertions(+), 217 deletions(-) diff --git a/docs/.vuepress/public/images/applet/service_overview.png b/docs/.vuepress/public/images/applet/service_overview.png index 064743c47867191f8b04bf548fa95bb839f1ef18..a61c2ffde4902acfc1f40dbad845c52d51153b6e 100644 GIT binary patch literal 146091 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 >n$OD#R8Qe23Dc$h!5UX8HUI#wLa^W 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 H`_2CaoFdGT literal 60856 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⪙&t9U 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 GkpBaBFSCgN diff --git a/docs/document/android/connection.md b/docs/document/android/connection.md index ecf4751b7..292dea488 100644 --- a/docs/document/android/connection.md +++ b/docs/document/android/connection.md @@ -66,4 +66,4 @@ EMClient.getInstance().removeConnectionListener(connectionListener); - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file diff --git a/docs/document/android/error.md b/docs/document/android/error.md index 771f9b780..ee6e7eba0 100644 --- a/docs/document/android/error.md +++ b/docs/document/android/error.md @@ -42,11 +42,11 @@ Android 中错误码的类为 [EMError](https://sdkdocs.easemob.com/apidoc/andro | 214 | USER_LOGIN_TOO_MANY_DEVICES | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | 可增加同时在线的设备数量,或先使用 `EMClient#kickDeviceWithToken` 踢掉其他设备再登录。 | | 215 | USER_MUTED | 用户在群组或聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | 用户在群组/聊天室内被禁言情况下,不能发送消息,可在 UI 上限制。 | | 216 | USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | 密码更新会收到回调 `EMConnectionListener#onLogout`,需要在收到该回调时,调用 `EMClient#logout` 方法,并回到登录页面。| -| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调 `EMConnectionListener#onLogout`。收到该回调时,需调用 `EMClient#logout` 方法,并回到登录页面。| +| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调 `EMConnectionListener#onLogout`。收到该回调时,需调用 `EMClient#logout` 方法,并回到登录页面。| | 218 | USER_ALREADY_LOGIN_ANOTHER | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | 如果在已登录情况下,要登录另一个账号,需要先调用 `EMClient#logout` 退出账号。 | | 219 | USER_MUTED_BY_ADMIN | 用户被禁言:用户被全局禁言后发送消息时提示该错误。 | 在群组/聊天室开启全员禁言的情况下,不能发送消息,可在 UI 上限制。 | | 220 | USER_DEVICE_CHANGED | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 |登录失败的设备会收到 `EMConnectionListener#onLogout` 事件。收到该事件时,需调用 `EMClient#logout` 方法,并回到登录页面。 | -| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。| 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | +| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面开启好友关系检查功能。| 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | | 300 | SERVER_NOT_REACHABLE | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误。 | 调用登录 API 返回该错误码,可能是由于网络受限,或域名被封禁,可尝试切换设备网络。如果用户在沙特/菲律宾等地区,需要联系商务,开启 dnsconfig中 TLS 加密。其他操作返回该错误码,一般是网络问题,可在切换网络或延迟一段时间后重新调用。 | | 301 | SERVER_TIMEOUT | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。 | 一般是网络问题,可在切换网络或延迟一段时间后重新调用 API。 | | 302 | SERVER_BUSY | 服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。 |检查调用的 API 是否重复调用。如果在上次调用后,结果未返回时重复调用 API,可能返回该错误码。 | diff --git a/docs/document/android/login.md b/docs/document/android/login.md index 1d66de187..d466e6a36 100644 --- a/docs/document/android/login.md +++ b/docs/document/android/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 示例代码如下所示: @@ -17,7 +17,7 @@ EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。 ``` -2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: +1. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: 可以在 [环信控制台](https://console.easemob.com/user/login) 创建正式环境下和测试环境下的用户,详见 [创建用户相关介绍](/product/console/operation_user.html#创建用户)。 diff --git a/docs/document/android/push/push_fcm.md b/docs/document/android/push/push_fcm.md index 442dc99ed..92ef8b474 100644 --- a/docs/document/android/push/push_fcm.md +++ b/docs/document/android/push/push_fcm.md @@ -232,7 +232,7 @@ public class MyFCMMSGService extends FirebaseMessagingService { 可以查看日志或调用[获取用户详情的 RESTful 接口](https://doc.easemob.com/document/server-side/account_system.html#获取单个用户的详情)确认 device token 是否绑定成功。成功后在 `entities` 字段下会有 `pushInfo` 字段,且 `pushInfo` 下会有 `device_Id`、`device_token`、`notifier_name` 等相关信息。 2. 开启应用通知栏权限。 3. 杀掉应用进程。 -4. 在[环信即时通讯云控制台](https://console.easemob.com/user/login)发送测试消息。 +4. 在[环信控制台](https://console.easemob.com/user/login)发送测试消息。 在左侧导航栏中选择 **即时通讯** > **运营服务** > **用户管理**。在**用户管理**页面中,在对应用户 ID 的**操作**栏中点击**更多**,然后选择**发送rest消息**。在弹出的对话框中选择消息类型,输入消息内容,然后点击**发送**。 5. 查看设备是否收到推送通知。 diff --git a/docs/document/android/push/push_honor.md b/docs/document/android/push/push_honor.md index fdd7a8606..4bef9412d 100644 --- a/docs/document/android/push/push_honor.md +++ b/docs/document/android/push/push_honor.md @@ -192,7 +192,7 @@ if (HonorPushClient.getInstance().checkSupportHonorPush(this)){ 1. 设置 `action` 参数。 -在环信即时通讯云控制台的**添加推送证书**对话框中设置 `action` 参数。该参数需要与客户端 `AndroidManifest.xml` 文件中注册启动的 `Activity` 类中 `intent-filter` 标签中设置的 `action` 一致。该配置只能实现跳转到无需前置参数的页面。若启动应用自定义页面需要前置参数,你还需要在消息扩展中添加前置参数。 +在环信控制台的**添加推送证书**对话框中设置 `action` 参数。该参数需要与客户端 `AndroidManifest.xml` 文件中注册启动的 `Activity` 类中 `intent-filter` 标签中设置的 `action` 一致。该配置只能实现跳转到无需前置参数的页面。若启动应用自定义页面需要前置参数,你还需要在消息扩展中添加前置参数。 若推送不同的消息时,接收方收到后点击推送通知栏打开不同应用自定义页面,你可以添加相应的消息扩展属性实现。 diff --git a/docs/document/android/push/push_overview.md b/docs/document/android/push/push_overview.md index dca2e5c1c..004323299 100644 --- a/docs/document/android/push/push_overview.md +++ b/docs/document/android/push/push_overview.md @@ -10,7 +10,7 @@ 客户端断开连接或应用进程被关闭等原因导致用户离线时,即时通讯 IM 会通过第三方消息推送服务向该离线用户的设备推送消息通知。当用户再次上线时,服务器会将离线期间的消息发送给用户(这里角标表示的是离线消息数,并不是实际的未读消息数)。例如,当你离线时,有用户向你发送了消息,你的手机的通知中心会弹出消息通知,当你再次打开 app 并登录成功,即时通讯 IM SDK 会主动拉取你不在线时的消息。 -除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信即时通讯云控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 +除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 **以下两种情况,即时通讯 IM 不会发送离线推送通知:** @@ -77,7 +77,7 @@ SDK 内部会按照以上顺序检测设备的推送支持情况。如果未设 **如果你的 App 有海外使用场景,建议开启 FCM 推送;由于各推送使用条件不同,建议尽可能同时支持各家推送。** -5. 使用消息推送前,需要你在对应的厂商推送服务上注册项目,并将设备的推送证书上传到[环信即时通讯云控制台](https://console.easemob.com/user/login)。 +5. 使用消息推送前,需要你在对应的厂商推送服务上注册项目,并将设备的推送证书上传到[环信控制台](https://console.easemob.com/user/login)。 ## 配置推送接口 diff --git a/docs/document/android/releasenote.md b/docs/document/android/releasenote.md index bd550ade4..5b23e486c 100644 --- a/docs/document/android/releasenote.md +++ b/docs/document/android/releasenote.md @@ -626,7 +626,7 @@ - [IM SDK] 修改 OPPO 推送导致 SDK 偶现 ANR 异常的问题。 - [IM CallKit] 修复发起语音通话时,若在对方接听前返回桌面,对方无法点击接听或挂断的问题。 - [IM UIKit] 修复部分机型拍照后的图片旋转问题。 -- [IM SDK] 适配 Android 12,修复依赖环信即时通讯云 SDK 的 APK 在 Android 12 版本的部分手机上第一次安装后打开时出现异常弹框的问题。 +- [IM SDK] 适配 Android 12,修复依赖环信即时通讯 IM SDK 的 APK 在 Android 12 版本的部分手机上第一次安装后打开时出现异常弹框的问题。 - [IM SDK] 修复某些场景下调用 `updateMessage` 方法导致的内存与数据库消息不一致问题。 ## 版本 V3.9.7 Dev 2022-9-30 diff --git a/docs/document/applet/alipay.md b/docs/document/applet/alipay.md index 54a526767..6293a3f98 100644 --- a/docs/document/applet/alipay.md +++ b/docs/document/applet/alipay.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 +开发者需要在环信控制台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 ### 搭建支付宝小程序开发环境 @@ -46,7 +46,7 @@ wss://im-api-alipay.easemob.com/websocket | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-alipay-41.easemob.com 或 im-api-alipay-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-alipay-71.easemob.com 或 im-api-alipay-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台 > **即时通讯** > **服务概览**中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/applet/baidu.md b/docs/document/applet/baidu.md index 1bbb98df9..99f6e0b4b 100644 --- a/docs/document/applet/baidu.md +++ b/docs/document/applet/baidu.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 +开发者需要在环信控制台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 ### 搭建百度小程序开发环境 @@ -50,7 +50,7 @@ wss://im-api-wechat.easemob.com(3.0 IM SDK) | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-wechat-41.easemob.com 或 im-api-wechat-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-wechat-71.easemob.com 或 im-api-wechat-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台 > **即时通讯** > **服务概览**中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/applet/bytedance.md b/docs/document/applet/bytedance.md index 965783a99..16525bced 100644 --- a/docs/document/applet/bytedance.md +++ b/docs/document/applet/bytedance.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 +开发者需要在环信控制台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 ### 搭建抖音小程序开发环境 @@ -51,7 +51,7 @@ wss://im-api-wechat.easemob.com(3.0 IM SDK) | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-wechat-41.easemob.com 或 im-api-wechat-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-wechat-71.easemob.com 或 im-api-wechat-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台 > **即时通讯** > **服务概览**中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/applet/connection.md b/docs/document/applet/connection.md index e377b82c3..cd8017695 100644 --- a/docs/document/applet/connection.md +++ b/docs/document/applet/connection.md @@ -48,5 +48,5 @@ conn.addEventHandler("connectionListener", { - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 diff --git a/docs/document/applet/initialization.md b/docs/document/applet/initialization.md index ad0dcc5e8..fa5e7800b 100644 --- a/docs/document/applet/initialization.md +++ b/docs/document/applet/initialization.md @@ -31,6 +31,6 @@ const conn = new EC.connection({ | `deviceId` | String | 否 | 设备 ID,为默认随机值。 | | `useOwnUploadFun` | Bool | 否 | 是否支持通过自己的路径将图片、文件上传到自己的服务器。
-`true`:支持,需要指定路径;
-(默认)`false`:关闭,通过消息服务器上传下载文件。 | | `autoReconnectNumMax` | Int | 否 | 最大重连次数。 | -| `apiUrl` | String | 是 | 指定的 REST 服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。要获取该服务器地址,需在环信控制台的**即时通讯 > 服务概览**页面,查看**域名配置**表格中的 **Rest Api** 设置。| -| `url` | String | 是 | 指定的消息服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。 要获取该服务器地址,需在环信控制台的**即时通讯 > 服务概览**页面,查看**域名配置**表格中的**微信小程序**或**支付宝小程序**设置。 | +| `apiUrl` | String | 是 | 指定的 REST 服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。要获取该服务器地址,需在环信控制台的 **应用概览**页面的 **开发配置信息** 区域看域名配置。| +| `url` | String | 是 | 指定的消息服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。要获取该服务器地址,需在环信控制台的 **应用概览**页面的 **开发配置信息** 区域看域名配置。 | diff --git a/docs/document/applet/login.md b/docs/document/applet/login.md index 65fa16eb3..5b503ffd6 100644 --- a/docs/document/applet/login.md +++ b/docs/document/applet/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见 [授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和 [批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在 [环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/applet/qq.md b/docs/document/applet/qq.md index 72cd85a9b..23ba2f2a8 100644 --- a/docs/document/applet/qq.md +++ b/docs/document/applet/qq.md @@ -6,7 +6,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/console/app_create.html),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信控制台 [注册并创建应用](/product/console/app_create.html),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ## 实现步骤 @@ -54,7 +54,7 @@ wss://im-api-wechat.easemob.com(3.0 IM SDK) | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-wechat-41.easemob.com 或 im-api-wechat-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-wechat-71.easemob.com 或 im-api-wechat-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台 > **即时通讯** > **服务概览**中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/applet/serverconfig.md b/docs/document/applet/serverconfig.md index 54dbf9bb2..e9dc43654 100644 --- a/docs/document/applet/serverconfig.md +++ b/docs/document/applet/serverconfig.md @@ -25,7 +25,7 @@ ![img](/images/applet/config5.png) -7. 登陆环信后台获取 socket 域名,进入即时通讯-服务概览页,即可看到如图的域名展示。 +1. 登陆环信控制台获取 socket 域名,进入 **应用概览** 页,即可看到如图的域名展示。 :::tip 抖音小程序、QQ 小程序、百度小程序、uniapp 全平台等同微信小程序的域名一致,使用微信小程序栏的域名即可。 diff --git a/docs/document/applet/uniapp.md b/docs/document/applet/uniapp.md index e6b5daa05..c1797b52c 100644 --- a/docs/document/applet/uniapp.md +++ b/docs/document/applet/uniapp.md @@ -61,7 +61,7 @@ | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-wechat-41.easemob.com 或 im-api-wechat-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-wechat-71.easemob.com 或 im-api-wechat-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台>应用信息中查看:Console 中查看请求域名 +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/applet/wechat.md b/docs/document/applet/wechat.md index a14929a8a..16ede9f45 100644 --- a/docs/document/applet/wechat.md +++ b/docs/document/applet/wechat.md @@ -8,7 +8,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 +开发者需要在环信控制台 [注册并创建应用](/product/console/app_create.html),来获取唯一 App Key,SDK 初始化时需要配置 App Key。 ### 搭建微信小程序开发环境 @@ -73,7 +73,7 @@ downloadFile 合法域名: | 美东 1 区 | a41.easemob.com 或 a41.easecdn.com | im-api-wechat-41.easemob.com 或 im-api-wechat-41.easecdn.com | | 德国 2 区 | a71.easemob.com 或 a71.easecdn.com | im-api-wechat-71.easemob.com 或 im-api-wechat-71.easecdn.com | -应用所在数据中心可以在环信用户管理后台>应用信息中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/flutter/connection.md b/docs/document/flutter/connection.md index ac01288d5..53f25596d 100644 --- a/docs/document/flutter/connection.md +++ b/docs/document/flutter/connection.md @@ -47,4 +47,4 @@ EMClient.getInstance.removeConnectionEventHandler('Identifier'); - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file diff --git a/docs/document/flutter/login.md b/docs/document/flutter/login.md index e0a6f97be..9f4a32d73 100644 --- a/docs/document/flutter/login.md +++ b/docs/document/flutter/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/flutter/overview.md b/docs/document/flutter/overview.md index dfae22d95..0328cd9a2 100644 --- a/docs/document/flutter/overview.md +++ b/docs/document/flutter/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信控制台](https://console.easemob.com/user/login)。 ## 集成环境 @@ -45,7 +45,7 @@ await EMClient.getInstance.startCallback(); ### SDK 注册 -若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 ```dart try { diff --git a/docs/document/flutter/push/push_easemob_console.md b/docs/document/flutter/push/push_easemob_console.md index af1e1b824..d33dace8c 100644 --- a/docs/document/flutter/push/push_easemob_console.md +++ b/docs/document/flutter/push/push_easemob_console.md @@ -31,7 +31,7 @@ ```dart try { - // notifierName: 对应平台在环信后台的推送证书名称 + // notifierName: 对应平台在环信控制台的推送证书名称 // deviceToken: 推送token EMClient.getInstance.pushManager.bindDeviceToken( notifierName: notifierName, diff --git a/docs/document/harmonyos/connection.md b/docs/document/harmonyos/connection.md index 350a1b99e..64d514b51 100644 --- a/docs/document/harmonyos/connection.md +++ b/docs/document/harmonyos/connection.md @@ -53,4 +53,4 @@ ChatClient.getInstance().removeConnectionListener(connectionListener); - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 diff --git a/docs/document/harmonyos/error.md b/docs/document/harmonyos/error.md index 624e6c9b8..00d264e99 100644 --- a/docs/document/harmonyos/error.md +++ b/docs/document/harmonyos/error.md @@ -40,11 +40,11 @@ HarmonyOS 中错误码的类为 `ChatError`。 | 214 | USER_LOGIN_TOO_MANY_DEVICES | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | | 215 | USER_MUTED | 用户在群组或聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | | 216 | USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | -| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | +| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | | 218 | USER_ALREADY_LOGIN_ANOTHER | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | | 219 | USER_MUTED_BY_ADMIN | 用户被禁言:用户被全局禁言后发送消息时提示该错误。 | | 220 | USER_DEVICE_CHANGED | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 | -| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。| +| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面开启好友关系检查功能。| | 300 | SERVER_NOT_REACHABLE | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误。 | | 301 | SERVER_TIMEOUT | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。 | | 302 | SERVER_BUSY | 服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。 | diff --git a/docs/document/harmonyos/login.md b/docs/document/harmonyos/login.md index 0792cafdc..110826798 100644 --- a/docs/document/harmonyos/login.md +++ b/docs/document/harmonyos/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/harmonyos/overview.md b/docs/document/harmonyos/overview.md index 289e883af..f324cc2bb 100644 --- a/docs/document/harmonyos/overview.md +++ b/docs/document/harmonyos/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信控制台](https://console.easemob.com/user/login)。 ## 集成环境 @@ -58,7 +58,7 @@ ChatClient.getInstance().init(context, options); ### SDK 注册 -若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 ```typescript ChatClient.getInstance().createAccount(userId, pwd).then(()=> { diff --git a/docs/document/harmonyos/push/push_template.md b/docs/document/harmonyos/push/push_template.md index b3fc0aa91..ac16a3fc8 100644 --- a/docs/document/harmonyos/push/push_template.md +++ b/docs/document/harmonyos/push/push_template.md @@ -137,7 +137,7 @@ export class PushTemplate { // 下面以文本消息为例,其他类型的消息设置方法相同。 const message = ChatMessage.createTextSendMessage(conversationId, "消息内容"); if (message) { - // 设置推送模板名称。设置前需在环信即时通讯云管理后台或调用 REST 接口创建推送模板。 + // 设置推送模板名称。设置前需在环信控制台或调用 REST 接口创建推送模板。 // 若为默认模板,无需传入模板名称。 // 若为自定义模板,需传入模板名称。 let templateName = "自定义推送模板名称"; @@ -200,9 +200,9 @@ export class PushTemplate { // 下面以文本消息为例,其他类型的消息设置方法相同。 const message = ChatMessage.createTextSendMessage(conversationId, "消息内容"); if (message) { - // 设置推送模板名称。设置前需在环信即时通讯云管理后台或调用 REST 接口创建推送模板。 + // 设置推送模板名称。设置前需在环信控制台或调用 REST 接口创建推送模板。 // 设置填写模板标题的 value 数组。 - let titleArgs = ["您","消息,"]; + let titleArgs = ["您","消息,"]; // 设置填写模板内容的 value 数组。 let contentArgs = ["请","查看"]; let templateName = "push"; // 此处 `push` 为已在创建的推送模板名称。 diff --git a/docs/document/ios/connection.md b/docs/document/ios/connection.md index f36f4bc10..c83aeecac 100644 --- a/docs/document/ios/connection.md +++ b/docs/document/ios/connection.md @@ -61,4 +61,4 @@ extension ViewController: EMClientDelegate { - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file diff --git a/docs/document/ios/error.md b/docs/document/ios/error.md index 0bfa6cf17..2f1f5f7b8 100644 --- a/docs/document/ios/error.md +++ b/docs/document/ios/error.md @@ -43,11 +43,11 @@ iOS 的错误码只有当操作出错的时候才会有返回值,否则返回 | 214 | EMErrorUserLoginTooManyDevices | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | 可增加同时在线的设备数量,或先使用 `EMClient#kickDevice` 踢掉其他设备再登录。 | | 215 | EMErrorUserMuted | 用户在群组聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | 用户在群组/聊天室内被禁言情况下,不能发送消息,可在 UI 上限制。 | | 216 | EMErrorUserKickedByChangePassword | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | 密码更新会收到回调`EMClientDelegate#userAccountDidForcedToLogout`,需要在收到该回调时,调用 `EMClient#logout` 方法,并回到登录页面。| -| 217 | EMErrorUserKickedByOtherDevice | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`EMClientDelegate#userAccountDidForcedToLogout`。收到该回调时,需调用`EMClient#logout` 方法,并回到登录页面。 | +| 217 | EMErrorUserKickedByOtherDevice | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`EMClientDelegate#userAccountDidForcedToLogout`。收到该回调时,需调用`EMClient#logout` 方法,并回到登录页面。 | | 218 | EMErrorUserAlreadyLoginAnother | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | 如果在已登录情况下,要登录另一个账号,需要先调用`EMClient#logut` 退出账号。 | | 219 | EMErrorUserMutedByAdmin | 用户被禁言:用户在群组/聊天室开启全员禁言时发送消息时提示该错误。 | 在群组/聊天室开启全员禁言的情况下,不能发送消息,可在 UI 上限制。 | | 220 | EMErrorUserDeviceChanged | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 | 登录失败的设备会收到 EMClientDelegate#userAccountDidLoginFromOtherDevice 事件。收到该事件时,需调用 `EMClient#logout` 方法,并回到登录页面。 | -| 221 | EMErrorUserNotOnRoster | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。 | 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | +| 221 | EMErrorUserNotOnRoster | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 开启好友关系检查功能。 | 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | | 300 | EMErrorServerNotReachable | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误 | 调用登录 API 返回该错误码,可能是由于网络受限,或域名被封禁,可尝试切换设备网络。如果用户在沙特/菲律宾等地区,需要联系商务,开启 dnsconfig中 TLS 加密。其他操作返回该错误码,一般是网络问题,可在切换网络或延迟一段时间后重新调用。 | | 301 | EMErrorServerTimeout | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。| 一般是网络问题,可在切换网络或延迟一段时间后重新调用 API。 | | 302 | EMErrorServerBusy | 服务器忙碌:服务器当前忙碌,建议稍后重试。 | 检查调用的 API 是否重复调用。如果在上次调用后,结果未返回时重复调用 API,可能返回该错误码。 | diff --git a/docs/document/ios/login.md b/docs/document/ios/login.md index 29cce3c51..7f9171bc1 100644 --- a/docs/document/ios/login.md +++ b/docs/document/ios/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/ios/push/push_overview.md b/docs/document/ios/push/push_overview.md index ad01ca260..b6fdd0fa3 100644 --- a/docs/document/ios/push/push_overview.md +++ b/docs/document/ios/push/push_overview.md @@ -8,7 +8,7 @@ 客户端断开连接或应用进程被关闭等原因导致用户离线时,即时通讯 IM 会通过 APNs 消息推送服务向该离线用户的设备推送消息通知,暂时保存这些消息。当用户再次上线时,服务器会将离线期间的消息发送给用户(这里角标表示的是离线消息数,并不是实际的未读消息数)。例如,当你离线时,有用户向你发送了消息,你的手机的通知中心会弹出消息通知,当你再次打开 app 并登录成功,即时通讯 IM SDK 会主动拉取你不在线时的消息。 -除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信即时通讯云控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 +除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 **以下两种情况,即时通讯 IM 不会发送离线推送通知:** diff --git a/docs/document/ios/push/push_template.md b/docs/document/ios/push/push_template.md index 45968f588..6258e419b 100644 --- a/docs/document/ios/push/push_template.md +++ b/docs/document/ios/push/push_template.md @@ -128,7 +128,7 @@ //下面以文本消息为例,其他类型的消息设置方法相同。 EMTextMessageBody *body = [[EMTextMessageBody alloc]initWithText:@"test"]; EMChatMessage *message = [[EMChatMessage alloc]initWithConversationID:@"conversationId" from:@"currentUsername" to:@"conversationId" body:body ext:nil]; -//设置推送模板。设置前需在环信即时通讯云管理后台或调用 REST 接口创建推送模板。 +//设置推送模板。设置前需在环信控制台或调用 REST 接口创建推送模板。 NSDictionary *pushObject = @{ //设置推送模板名称。 //若为默认模板 `default` 或 `detail`,无需传入模板名称。若为自定义模板,需传入模板名称。 @@ -183,7 +183,7 @@ EMChatMessage *message = [[EMChatMessage alloc]initWithConversationID:@"conversa //设置推送模板。设置前需在环信控制台上创建推送模板。 NSDictionary *pushObject = @{ //设置推送模板名称。若不指定,设置默认推送模板的信息。 - //设置前需在环信即时通讯云管理后台或调用 REST 接口创建推送模板。 + //设置前需在环信控制台或调用 REST 接口创建推送模板。 @"name":@"templateName", @"title_args":@[@"您",@"消息"],//设置填写模板标题的 value 数组。 @"content_args":@[@"请",@"查看"]//设置填写模板内容的 value 数组。 diff --git a/docs/document/react-native/connection.md b/docs/document/react-native/connection.md index 9066a5b6b..0e01861f8 100644 --- a/docs/document/react-native/connection.md +++ b/docs/document/react-native/connection.md @@ -78,4 +78,4 @@ ChatClient.getInstance().addConnectionListener({ - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 diff --git a/docs/document/react-native/login.md b/docs/document/react-native/login.md index 3d4297733..134dd26b0 100644 --- a/docs/document/react-native/login.md +++ b/docs/document/react-native/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/react-native/overview.md b/docs/document/react-native/overview.md index ba7d7a956..27db949a9 100644 --- a/docs/document/react-native/overview.md +++ b/docs/document/react-native/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信控制台](https://console.easemob.com/user/login)。 ## 集成环境 @@ -83,7 +83,7 @@ ChatClient.getInstance() ### SDK 注册 -若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 ```typescript ChatClient.getInstance() diff --git a/docs/document/react-native/push/push_overview.md b/docs/document/react-native/push/push_overview.md index 299ff215c..1715b98b3 100644 --- a/docs/document/react-native/push/push_overview.md +++ b/docs/document/react-native/push/push_overview.md @@ -8,7 +8,7 @@ 客户端断开连接或应用进程被关闭等原因导致用户离线时,即时通讯 IM 会通过第三方消息推送服务向该离线用户的设备推送消息通知。当用户再次上线时,服务器会将离线期间的消息发送给用户(这里角标表示的是离线消息数,并不是实际的未读消息数)。例如,当你离线时,有用户向你发送了消息,你的手机的通知中心会弹出消息通知,当你再次打开 app 并登录成功,即时通讯 IM SDK 会主动拉取你不在线时的消息。 -除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信即时通讯云控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 +除了满足用户离线条件外,要使用第三方离线推送,你还需在[环信控制台](https://console.easemob.com/user/login)配置推送证书信息,例如,对于华为推送,需配置**证书名称**和**推送密钥**,并调用客户端 SDK 提供的 API 向环信服务器上传 device token。 **以下两种情况,即时通讯 IM 不会发送离线推送通知:** diff --git a/docs/document/react-native/push/push_send_token_to_server.md b/docs/document/react-native/push/push_send_token_to_server.md index f580bbdfa..1cd83efeb 100644 --- a/docs/document/react-native/push/push_send_token_to_server.md +++ b/docs/document/react-native/push/push_send_token_to_server.md @@ -27,7 +27,7 @@ yarn add react-native-chat-sdk import { getPlatform, getDeviceType } from "react-native-push-collection"; import { ChatClient, ChatOptions, ChatPushConfig } from "react-native-chat-sdk"; -// 从环信即时通讯云控制台获取推送 ID、pushId +// 从环信控制台获取推送 ID、pushId const pushId = ""; // 设置推送类型 diff --git a/docs/document/react-native/releasenote.md b/docs/document/react-native/releasenote.md index ff56a39cb..1e773a1a7 100644 --- a/docs/document/react-native/releasenote.md +++ b/docs/document/react-native/releasenote.md @@ -330,7 +330,7 @@ - 修复极端情况下 SDK 崩溃的问题。 - 修复某些场景下调用 `updateMessage` 方法导致的内存与数据库中的消息不一致问题。 -- 适配 Android 12,修复依赖环信即时通讯云 SDK 的 APK 在 Android 12 版本的部分手机上第一次安装后打开时出现异常弹框的问题。 +- 适配 Android 12,修复依赖环信即时通讯 IM SDK 的 APK 在 Android 12 版本的部分手机上第一次安装后打开时出现异常弹框的问题。 ## 版本 V1.0.10 Dev 2022-10-13 diff --git a/docs/document/server-side/account_system.md b/docs/document/server-side/account_system.md index ed4b103ce..cb2982519 100644 --- a/docs/document/server-side/account_system.md +++ b/docs/document/server-side/account_system.md @@ -62,7 +62,7 @@ - 开放注册指用户可以在登录客户端 SDK 后自行通过账号密码注册账号。 - 一般在体验 Demo 和测试开发环境时使用。 -- 使用前需先在[环信即时通讯云控制后台](https://console.easemob.com/user/login)打开相应应用的开放注册开关,即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将 **用户注册模式** 设置为 **开放注册**。 +- 使用前需先在[环信控制台](https://console.easemob.com/user/login)打开相应应用的开放注册开关,即在控制台的 **应用管理** 页面点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 - 调用该 API 无需传入 token。 - 注册用户时,需满足用户 ID 和密码的设置要求。 @@ -157,7 +157,7 @@ curl -X POST -i "https://XXXX.com/XXXX-demo/XXXX/users" -d '{"username":"user1", - 授权注册模式指注册环信即时通讯 IM 账号时携带管理员身份认证信息,即 App Token。 - 要使用该注册方式,你需要在环信控制台进行如下配置: -在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将**用户注册模式**设置**授权注册**,然后单击**保存**。 +在控制台的 **应用管理** 页面点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为**授权注册**。 - 推荐使用该模式,因为该模式较为安全,可防止已获取了注册 URL 和了解注册流程的某些人恶意向服务器大量注册垃圾用户。 - 注册用户时,需满足用户 ID 和密码的设置要求。 diff --git a/docs/document/server-side/callback_contact.md b/docs/document/server-side/callback_contact.md index f39bbc1ce..59bbcb626 100644 --- a/docs/document/server-side/callback_contact.md +++ b/docs/document/server-side/callback_contact.md @@ -44,7 +44,7 @@ | `payload.reason` | object | / | | `payload.operation` | String | `add`:添加好友。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | @@ -85,7 +85,7 @@ | `payload.roster_ver` | String | 好友列表的版本号。 | | `payload.operation` | String | `remove`:删除好友。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | @@ -126,7 +126,7 @@ | `payload.roster_ver` | String | 好友列表的版本号。 | | `payload.operation` | String | `accept`:同意好友申请。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | @@ -169,7 +169,7 @@ | `payload.roster_ver` | String | 好友列表的版本号。 | | `payload.operation` | String | `decline`:拒绝好友申请。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | @@ -213,7 +213,7 @@ | `payload.status` | object | 包含 `error_code`。 | | `payload.status.error_code` | String | 操作失败对应的错误码。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | @@ -258,7 +258,7 @@ | `payload.status` | object | 包含 `error_code`。 | | `payload.status.error_code` | String | 操作失败对应的错误码。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发起方,格式为 `App Key_发起方用户 ID@easemob.com`。 | | `to` | String | 接收方用户 ID。 | | `eventType` | String |
- `chat`:上行消息
- `chat_offline`:离线消息。 | diff --git a/docs/document/server-side/callback_group_ban.md b/docs/document/server-side/callback_group_ban.md index 0f718de1a..ddb8b5dc9 100644 --- a/docs/document/server-side/callback_group_ban.md +++ b/docs/document/server-side/callback_group_ban.md @@ -43,7 +43,7 @@ | `paylod` | Object | 事件内容。 | | - `disabled`| Boolean |
- `true`:封禁
- `false`:解禁 | | - `type` | String | `DISABLE`:封禁或解禁操作。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件。由于聊天室无封禁或解禁事件,本次事件仅对群组有效,因此值只能为 `GROUP`。 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_block.md b/docs/document/server-side/callback_group_block.md index afc5ad4ab..aa00f4cbd 100644 --- a/docs/document/server-side/callback_group_block.md +++ b/docs/document/server-side/callback_group_block.md @@ -43,7 +43,7 @@ | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。详见[配置环信控制台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。| | `payload` | Object | 事件内容。 | | `payload.type` | String | 屏蔽群组事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -86,7 +86,7 @@ | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。详见[配置环信控制台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。| | `paylod` | Object | 事件内容。 | | `payload.type` | String | 解除屏蔽群组事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_read_ack.md b/docs/document/server-side/callback_group_read_ack.md index 3c582d691..8ba1bbd70 100644 --- a/docs/document/server-side/callback_group_read_ack.md +++ b/docs/document/server-side/callback_group_read_ack.md @@ -55,7 +55,7 @@ | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。Secret 见 [Console 后台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。 | | `payload` | object | 包括:
- `ext`:消息扩展字段
- `ack_message_id`:消息 ID
- `msg_config.allow_group_ack`:是否需要群消息已读回执
- `type`:`read_ack` 表示消息已读回执。| | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发送已读回执的用户 ID。 | | `to` | String | 群组 ID。 | | `msg_id` | String | 该回执消息的消息 ID。 | diff --git a/docs/document/server-side/callback_group_room_admin.md b/docs/document/server-side/callback_group_room_admin.md index bd97ef778..198feee88 100644 --- a/docs/document/server-side/callback_group_room_admin.md +++ b/docs/document/server-side/callback_group_room_admin.md @@ -51,7 +51,7 @@ | `payload` | Object | 事件内容。 | | `payload.admin`| JSON | 添加为群组/聊天室管理员的用户 ID。 | | `payload.type` | String | 添加群组/聊天室管理员的事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -103,7 +103,7 @@ | `payload` | Object | 事件内容。 | | `payload.admin`| JSON | 被移除的群组/聊天室管理员的用户 ID。 | | `payload.type` | String | 移除群组/聊天室管理员的事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_allowlist.md b/docs/document/server-side/callback_group_room_allowlist.md index 308476983..8d533cbba 100644 --- a/docs/document/server-side/callback_group_room_allowlist.md +++ b/docs/document/server-side/callback_group_room_allowlist.md @@ -48,7 +48,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | Array | 被加入白名单的成员的用户 ID。 | | `payload.type` | String | 将群组/聊天室成员加入白名单的事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -97,7 +97,7 @@ | `paylod` | Object | 事件内容。 | | `payload.member` | JSON | 被移出白名单的成员的用户 ID。 | | `payload.type` | String | 将群组/聊天室成员移出白名单的事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_announcement.md b/docs/document/server-side/callback_group_room_announcement.md index cc3f2bc7c..ca46ac610 100644 --- a/docs/document/server-side/callback_group_room_announcement.md +++ b/docs/document/server-side/callback_group_room_announcement.md @@ -45,7 +45,7 @@ | `paylod` | Object | 事件内容。 | | - `type` | String | 公告更新事件。 | | - `announcement` | String | 新公告内容。若删除了公告内容,则该字段不存在。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_blocklist.md b/docs/document/server-side/callback_group_room_blocklist.md index 0f8875eff..92209d631 100644 --- a/docs/document/server-side/callback_group_room_blocklist.md +++ b/docs/document/server-side/callback_group_room_blocklist.md @@ -54,7 +54,7 @@ | `payload.member` | Array | 被加入或移出群组/聊天室黑名单的用户 ID。 | | `payload.expire_timestamp` | Long | 用户在黑名单中的过期时间。用户加入黑名单后,系统会自动分配该参数的值。 | | `payload.type` | String | 事件类型。`ADD` 表示将用户加入群组/聊天室黑名单。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -103,7 +103,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | Array | 被移出群组/聊天室黑名单的用户 ID。 | | `payload.type` | Array | 将用户移出群组/聊天室黑名单的事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_create.md b/docs/document/server-side/callback_group_room_create.md index 4d5ed25a9..ae32a9330 100644 --- a/docs/document/server-side/callback_group_room_create.md +++ b/docs/document/server-side/callback_group_room_create.md @@ -70,7 +70,7 @@ | `payload.role` | JSON | 群组角色。若设置了管理员,显示管理员角色,若未设置,则只显示群组角色:
- 用户 ID:`owner`
- 用户 ID:`admin` | | `payload.member`| Array | 创建群组时拉入群的用户。 | | `payload.info` | JSON | 新群组的相关信息。
- `owner`:String 类型,群主。
- `created`:Long 类型,群组创建时间。
- `custom`:String 类型,群组自定义信息。
- `description`:String 类型,群组描述。
- `mute`:Bool 类型,是否进行全员禁言,`true` 表示是,`false` 表示否。
- `mute_duration`:Long 类型,全员禁言时长,从当前时间开始计算。单位为秒。`0` 表示取消禁言,`-1` 表示永久禁言。
- `avatar`:String,群组头像 URL。
- `title`:String 类型,群组名称。
- `max_users`:群组最大成员数(包括群主)。
- `invite_need_confirm`:Bool 类型,邀请用户入群时是否需要被邀用户同意,`true` 表示需要被邀用户同意,`false` 表示不需要。
- `public`:Bool 类型,是否是公开群, `true` 表示公开群,`false` 表示私有群。
- `allow_user_invites`:Bool 类型,是否允许普通群成员邀请用户加入群组,`true` 表示允许,`false` 表示不允许,只有群主和群管理员才能邀请用户入群。
- `disabled`:Boolean 类型,`true` 表示群组为禁用状态,`false`,表示群组为非禁用状态,可正常使用。
- `last_modified`:Long 类型,群组信息的最新修改时间。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_delete.md b/docs/document/server-side/callback_group_room_delete.md index 75e2ed6da..f40ec553f 100644 --- a/docs/document/server-side/callback_group_room_delete.md +++ b/docs/document/server-side/callback_group_room_delete.md @@ -38,7 +38,7 @@ | :------------- | :----- | :----------------------------------------------------------- | | `callId` | String | `callId` 为每个回调请求的唯一标识,格式为 `App Key_UUID`。 | | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。详见[配置环信控制台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。| -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_info.md b/docs/document/server-side/callback_group_room_info.md index ffcf7bffa..bb4a05144 100644 --- a/docs/document/server-side/callback_group_room_info.md +++ b/docs/document/server-side/callback_group_room_info.md @@ -77,7 +77,7 @@ | `payload` | Object | 事件内容。 | | - `type`| String | | 群组信息修改事件。 | | - `info` | JSON | 修改后的群组信息。
- `owner`:String 类型,群主。
- `created`:Long 类型,群组创建时间。
- `custom`:String 类型,群组自定义信息。
- `description`:String 类型,群组描述。
- `mute`:Bool 类型,是否进行全员禁言,`true` 表示是,`false` 表示否。
- `mute_duration`:Long 类型,全员禁言时长,从当前时间开始计算。单位为秒。`0` 表示取消禁言,`-1` 表示永久禁言。
- `avatar`:String,群组头像 URL。
- `title`:String 类型,群组名称。
- `max_users`:群组最大成员数(包括群主)。
- `invite_need_confirm`:Bool 类型,邀请用户入群时是否需要被邀用户同意,`true` 表示需要被邀用户同意,`false` 表示不需要。
- `public`:Bool 类型,是否是公开群, `true` 表示公开群,`false` 表示私有群。
- `allow_user_invites`:Bool 类型,是否允许普通群成员邀请用户加入群组,`true` 表示允许,`false` 表示不允许,只有群主和群管理员才能邀请用户入群。
- `disabled`:Boolean 类型,`true` 表示群组为禁用状态,`false`,表示群组为非禁用状态,可正常使用。
- `last_modified`:Long 类型,群组信息的最新修改时间。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_join.md b/docs/document/server-side/callback_group_room_join.md index 4ba2b5a9a..e5d26d98c 100644 --- a/docs/document/server-side/callback_group_room_join.md +++ b/docs/document/server-side/callback_group_room_join.md @@ -58,7 +58,7 @@ | `payload.member` | JSON |
- 创建群组或聊天室时,被拉入进群/聊天室的用户 ID。
- 用户主动加入聊天室时,该用户的 ID。 | | `payload.options.ext` | JSON | 扩展信息。该字段只适用于加入聊天室事件,不适用于加群事件。 | | `payload.type` | Array | 加入方式:`DIRECT` 表示创建群组或聊天室时拉人进入或用户主动加入聊天室。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -109,7 +109,7 @@ | `payload` | Object | 事件内容。 | | `payload.member`| JSON | 被邀请的用户 ID。 | | `payload.type` | Array | 入群方式:`INVITE` 表示邀请用户入群。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室
由于聊天室无此事件,因此该参数只能为 `GROUP`。 | | `event` | String | 群组操作事件,值为 `group_op_event`。 | @@ -160,7 +160,7 @@ | `paylod` | Object | 事件内容。 | | `payload.member` | JSON | 申请加入的用户 ID。 | | `payload.type`| Array | 加入方式:`APPLY` 表示申请入群。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_leave.md b/docs/document/server-side/callback_group_room_leave.md index 6e957e175..a3a1cb86f 100644 --- a/docs/document/server-side/callback_group_room_leave.md +++ b/docs/document/server-side/callback_group_room_leave.md @@ -77,7 +77,7 @@ | `payload.member` | JSON | 退出群组/聊天室的用户 ID。 | | `payload.action` | JSON | 该字段只适用于退出聊天室事件,不适用于退出群组事件:
- `user_quit`:退出聊天室的用户 ID。
- `user_offline`:因离线退出聊天室。 | | `payload.type` | Array | 退出方式:`QUIT` 表示主动退出群组或聊天室或者因离线退出聊天室。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -130,7 +130,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | JSON | 被踢出群组/聊天室的用户 ID。 | | `payload.type` | Array | 退群方式:`KICK` 表示将用户踢出群组/聊天室。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -184,7 +184,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | JSON | 被加入群组/聊天室黑名单后离开的用户 ID。 | | `payload.type` | Array | 退群方式:`BLOCK` 表示加入群组/聊天室黑名单后离开群组/聊天室。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -239,7 +239,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | JSON | 群组/聊天室被解散后离开的用户 ID。 | | `payload.type` | Array | 退群方式:`DELETE` 表示群组/聊天室被解散后,用户离开群组/聊天室。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | | `timestamp` | Long | 操作完成的时间戳。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | diff --git a/docs/document/server-side/callback_group_room_mute.md b/docs/document/server-side/callback_group_room_mute.md index 33f30b484..e8739940c 100644 --- a/docs/document/server-side/callback_group_room_mute.md +++ b/docs/document/server-side/callback_group_room_mute.md @@ -51,7 +51,7 @@ | `payload.member` | JSON | 被加入禁言列表的成员的用户 ID。 | | `payload.expire_timestamp` | LONG | 禁言过期时间。将群组或聊天室成员禁言后,系统会自动分配一个禁言过期时间戳。 | | `payload.type` | String | 将成员加入禁言列表的事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM`:聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -100,7 +100,7 @@ | `payload` | Object | 事件内容。 | | `payload.member` | JSON | 被移出禁言列表的成员的用户 ID。 | | `payload.type` | String | 将成员移出禁言列表的事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_muteall.md b/docs/document/server-side/callback_group_room_muteall.md index 7b1664c16..4c8fbd18d 100644 --- a/docs/document/server-side/callback_group_room_muteall.md +++ b/docs/document/server-side/callback_group_room_muteall.md @@ -47,7 +47,7 @@ | `paylod` | Object | 事件内容。 | | `payload.mute` | JSON | 全员禁言或解除全员禁言:
- `true`:全员禁言
- `false`:解除全员禁言 | | `payload.type` | String | 全员禁言/解除全员禁言事件,值为 `MUTE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_room_owner.md b/docs/document/server-side/callback_group_room_owner.md index 8c448e149..efe6e11d3 100644 --- a/docs/document/server-side/callback_group_room_owner.md +++ b/docs/document/server-side/callback_group_room_owner.md @@ -51,7 +51,7 @@ | - `owner`| String | 原群主。 | | - `new_owner` | String | 新群主。 | | - `type` | String | 值为 `OWNER`,表示操作类型为变更群主。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组/聊天室 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_group_shared_file.md b/docs/document/server-side/callback_group_shared_file.md index 7e2730612..515a860f0 100644 --- a/docs/document/server-side/callback_group_shared_file.md +++ b/docs/document/server-side/callback_group_shared_file.md @@ -48,7 +48,7 @@ | `payload` | Object | 事件内容。 | | - `share_file`| String | 上传的群组共享文件。 | | - `type` | String | 群组共享文件上传事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -96,7 +96,7 @@ | `payload` | Object | 事件内容。 | | - `share_file`| String | 删除的群组共享文件。 | | - `type` | String | 群组共享文件删除事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 群组 ID。 | | `type` | String | 区分群组或聊天室事件:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_login_logout.md b/docs/document/server-side/callback_login_logout.md index 5615c45b5..29908996b 100644 --- a/docs/document/server-side/callback_login_logout.md +++ b/docs/document/server-side/callback_login_logout.md @@ -33,7 +33,7 @@ app 用户状态分为在线和离线两种,即用户已连接到环信即时 | `os` | String | 设备类型。 | | `ip` | String | 用户登录 IP。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `user` | String | 登录用户识别号,格式为 `{app key_username@easemob.com/device operating system_device ID}`,其中 `@easemob.com` 为固定字符串,`device ID` 由 SDK 随机生成。 | | `version` | String | SDK 版本号。 | | `timestamp` | long | 登录请求到环信 IM 服务器的 Unix 时间戳,单位为 ms。 | @@ -69,7 +69,7 @@ app 用户状态分为在线和离线两种,即用户已连接到环信即时 | `os` | String | 设备类型。 | | `ip` | String | 用户登录 IP。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `user` | String | 登录用户识别号,格式为 `{app key_username@easemob.com/device operating system_device ID}`,其中 `@easemob.com` 为固定字符串,`device ID` 由 SDK 随机生成。 | | `version` | String | SDK 版本号。 | | `timestamp` | long | 请求到环信 IM 服务器的 Unix 时间戳,单位为 ms。 | @@ -105,7 +105,7 @@ app 用户状态分为在线和离线两种,即用户已连接到环信即时 | `os` | String | 设备类型。 | | `ip` | String | 用户登录 IP。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `user` | String | 登录用户识别号,格式为 `{app key_username@easemob.com/device operating system_device ID}`,其中 `@easemob.com` 为固定字符串,`device ID` 由 SDK 随机生成。 | | `version` | String | SDK 版本号。 | | `timestamp` | long | 请求到环信 IM 服务器的 Unix 时间戳,单位为毫秒 。 | diff --git a/docs/document/server-side/callback_message_modify.md b/docs/document/server-side/callback_message_modify.md index 53ca84d26..f7beaf5fc 100644 --- a/docs/document/server-side/callback_message_modify.md +++ b/docs/document/server-side/callback_message_modify.md @@ -74,7 +74,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -144,7 +144,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -223,7 +223,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -297,7 +297,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -373,7 +373,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -445,7 +445,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -522,7 +522,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | @@ -600,7 +600,7 @@ | `eventType` | String | `chat` 上行消息、`chat_offline` 离线消息。 | | `chat_type` | String | `edit`,表示修改消息。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [配置环信控制台回调规则](callback_postsending.html#发送后回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 消息发送方的用户 ID。 | | `to` | String | 消息接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。 | | `msg_id` | String | 该消息修改事件消息的 ID。 | diff --git a/docs/document/server-side/callback_message_recall.md b/docs/document/server-side/callback_message_recall.md index 4e94a7545..66300dfac 100644 --- a/docs/document/server-side/callback_message_recall.md +++ b/docs/document/server-side/callback_message_recall.md @@ -20,7 +20,7 @@ | `payload` | object | 事件内容,与通过 REST API 发送过来的一致,查看 [历史消息内容](message_historical.html#历史消息记录的内容)。 | | `securityVersion` | String | 安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。 | | `security` | String | 签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 [Console 后台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `host` | String | 服务器名称。 | payload 中字段含义: diff --git a/docs/document/server-side/callback_message_send.md b/docs/document/server-side/callback_message_send.md index 3bd8887b7..381d73b6f 100644 --- a/docs/document/server-side/callback_message_send.md +++ b/docs/document/server-side/callback_message_send.md @@ -15,7 +15,7 @@ | `payload` | object | 事件内容,与通过 REST API 发送过来的一致,查看 [历史消息内容](message_historical.html#历史消息记录的内容)。 | | `securityVersion` | String | 安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。 | | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。 Secret 见 Console 后台回调规则。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `host` | String | 服务器名称。 | | `content_type` | String | 消息类型:
- `chat:user:*`:单聊消息
- `chat:group:*`:群组消息
- `chat:room:*`:聊天室消息
文本、图片、音视频等消息对应的参数值,详见[发送单聊消息](#发送单聊消息)、[发送群组消息](#发送群组消息)和[发送聊天室消息](#发送聊天室消息)章节。 | diff --git a/docs/document/server-side/callback_overview.md b/docs/document/server-side/callback_overview.md index 7053f3446..af07a3322 100644 --- a/docs/document/server-side/callback_overview.md +++ b/docs/document/server-side/callback_overview.md @@ -4,7 +4,7 @@ ## 概述 -环信即时通讯云支持回调功能,即会在事件发生之前或之后,环信 IM 服务器会以 HTTP POST 请求的形式向你的应用服务器发送通知。根据是否干预消息投递,回调分为两类: +环信即时通讯 IM 支持回调功能,即会在事件发生之前或之后,环信 IM 服务器会以 HTTP POST 请求的形式向你的应用服务器发送通知。根据是否干预消息投递,回调分为两类: - **发送前回调**:旨在让 app 后台干预该事件的处理逻辑,环信服务器会根据响应中的返回值确定后续处理流程。**该类回调仅适用于从你的客户端应用发送的消息。** diff --git a/docs/document/server-side/callback_postsending.md b/docs/document/server-side/callback_postsending.md index c20acf052..1f4ab27cd 100644 --- a/docs/document/server-side/callback_postsending.md +++ b/docs/document/server-side/callback_postsending.md @@ -130,11 +130,11 @@ GET https://{host}/{org_name}/{app_name}/callbacks/storage/info | `path` | string | 请求路径。 | | `uri` | string | 请求路径的 URI。 | | `timestamp` | long | 环信 IM 服务器接收到此消息的 Unix 时间戳,单位为毫秒。 | -| `organization` | string | 你在环信 IM 管理后台注册的组织唯一标识。 | -| `application` | string | 你在环信 IM 管理后台注册的 App 唯一标识。 | +| `organization` | string | 你在环信控制台注册的组织唯一标识。 | +| `application` | string | 你在环信控制台注册的 App 唯一标识。 | | `action` | string | 请求方法。 | | `duration` | long | 请求耗时,单位为毫秒。 | -| `applicationName` | string | 你在环信 IM 管理后台注册的 App 名称。 | +| `applicationName` | string | 你在环信控制台注册的 App 名称。 | | `data` | object | 响应数据内容。包括以下三个参数:`date`、`size` 和 `retry`。 | | - `date` | String | 当前的 date key,即每 10 分钟内的消息和事件。key 为 10 分钟的起点。 | | - `size` | Int | 该 date key 内的消息数量。 | @@ -222,7 +222,7 @@ POST https://{host}/{org_name}/{app_name}/callbacks/storage/retry | `uri` | String | 请求路径的 URI。 | | `timestamp` | long | 环信 IM 服务器接收到此消息的 Unix 时间戳,单位为毫秒。 | | `organization` | String | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识,与请求参数 `org_name` 相同。 | -| `application` | String | 你在环信 IM 管理后台注册的 app 唯一标识。 | +| `application` | String | 你在环信控制台注册的 app 唯一标识。 | | `action` | String | 请求方法。 | | `data` | Bool | - `success`:成功;
- `failure`:失败。 | | `duration` | long | 请求耗时,单位为毫秒。 | diff --git a/docs/document/server-side/callback_room_superadmin.md b/docs/document/server-side/callback_room_superadmin.md index d1dbbb781..2e3bb0c86 100644 --- a/docs/document/server-side/callback_room_superadmin.md +++ b/docs/document/server-side/callback_room_superadmin.md @@ -47,7 +47,7 @@ | `payload` | Object | 事件内容。 | | `payload.admin`| JSON | 添加的聊天室超级管理员的用户 ID。 | | `payload.type` | String | 添加聊天室超级管理员的事件,值为 `ADD`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 聊天室 ID。 | | `type` | String | 区分群组或聊天室事件。本事件仅对聊天室有效,因此该参数的值只能为 `CHATROOM`:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | @@ -95,7 +95,7 @@ | `payload` | Object | 事件内容。 | | `payload.admin`| JSON | 移除的聊天室超级管理员的用户 ID。 | | `payload.type` | String | 移除聊天室超级管理员的事件,值为 `REMOVE`。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `id` | String | 聊天室 ID。 | | `type` | String | 区分群组或聊天室事件。本事件仅对聊天室有效,因此该参数的值只能为 `CHATROOM`:
- `GROUP`:群组
- `CHATROOM` :聊天室 | | `event` | String | 对于群组和聊天室,该参数的值固定为 `group_op_event`。接收方可按此字段区分是否是群组/聊天室操作事件。 | diff --git a/docs/document/server-side/callback_single_conversation_ack.md b/docs/document/server-side/callback_single_conversation_ack.md index 6c0cb0108..da59778c9 100644 --- a/docs/document/server-side/callback_single_conversation_ack.md +++ b/docs/document/server-side/callback_single_conversation_ack.md @@ -14,7 +14,7 @@ | `payload.ack_message_id` | String | 会话中消息的消息 ID。 | | `payload.type` | String | 会话已读回执类型。 | | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发送已读回执的用户。| | `to` | String | 接收已读回执的用户。 | | `msg_id` | String | 已读回执的消息 ID。 | diff --git a/docs/document/server-side/callback_single_read_ack.md b/docs/document/server-side/callback_single_read_ack.md index a4c4c8077..1ce317d0f 100644 --- a/docs/document/server-side/callback_single_read_ack.md +++ b/docs/document/server-side/callback_single_read_ack.md @@ -49,7 +49,7 @@ | `security` | String | 签名,格式如下: `MD5(callId+secret+timestamp)`。 Secret 见 [Console 后台回调规则](/product/console/basic_webhook.html#配置消息回调规则)。 | | `payload` | object | 包括:
- `ext`:消息扩展字段
- `ack_message_id`:消息 ID
- `bodies`:消息体内容。 | | `host` | String | 服务器名称。 | -| `appkey` | String | 你在环信管理后台注册的应用唯一标识。 | +| `appkey` | String | 你在环信控制台注册的应用唯一标识。 | | `from` | String | 发送已读回执用户 ID。 | | `to` | String | 接收已读回执用户 ID。 | | `eventType` | String | `chat`:表示上行消息。 | diff --git a/docs/document/server-side/java_server_sdk.md b/docs/document/server-side/java_server_sdk.md index 026dfef0e..b3dfdedac 100644 --- a/docs/document/server-side/java_server_sdk.md +++ b/docs/document/server-side/java_server_sdk.md @@ -12,7 +12,7 @@ Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理 - Java 1.8 - [Reactor](https://projectreactor.io/)(io.projectreactor:reactor-bom:2020.0.4) -- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信管理后台](https://console.easemob.com/user/login) 到“应用列表” → 点击“查看”即可获取到 App Key、Client ID、ClientSecret。 +- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信控制台](https://console.easemob.com/user/login) 到“应用列表” → 点击“查看”即可获取到 App Key、Client ID、ClientSecret。 ## 实现方法 diff --git a/docs/document/server-side/java_server_sdk_2.0.md b/docs/document/server-side/java_server_sdk_2.0.md index 7a18278dd..d6927e477 100644 --- a/docs/document/server-side/java_server_sdk_2.0.md +++ b/docs/document/server-side/java_server_sdk_2.0.md @@ -11,7 +11,7 @@ Server SDK 2.0 提供了用户、消息、群组、聊天室等资源的操作 ## 前提条件 - Java 1.8 -- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret、BasePath (对应的 RESTful API 域名,详见环信控制台的**即时通讯 > 服务概览**页面下的**域名配置区域**),登录 [环信管理后台](https://console.easemob.com/user/login) 到“应用列表” → 点击“查看”即可获取到 App Key、Client ID、ClientSecret,到"即时通讯" → 点击"服务概览"获取到 "Rest api" 的服务器域名。 +- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret、BasePath (对应的 RESTful API 域名,详见环信控制台的 **应用概览**页面下的 **开发配置信息** 区域)。 ## 实现方法 diff --git a/docs/document/server-side/message_download.md b/docs/document/server-side/message_download.md index 22b6b4307..fa34a2b86 100644 --- a/docs/document/server-side/message_download.md +++ b/docs/document/server-side/message_download.md @@ -87,8 +87,8 @@ POST https://{host}/{org_name}/{app_name}/chatfiles | `Content-Type` | String | 是 | 内容类型: `multipart/form-data`。 | | `Authorization` | String | 否 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | | `restrict-access` | Bool | 否 | 是否限制访问该文件:
- `true`:是。用户需要通过响应 body 中获取的文件访问密钥(`share-secret`)才能下载该文件。
- `false`:否。表示不限制访问。用户可以直接下载该文件。
要使用文件访问限制功能,请联系商务开通。| -| `thumbnail-height` | Int | 否 | 缩略图的高度,单位为像素。
- 若上传的原图或视频缩略图小于 10 KB,上传的图片即为缩略图。
- 若上传的图片超过 10 KB,缩略图的高度取决于该参数的设置。
- 若不传该参数,缩略图的高度默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。 | -| `thumbnail-width` | Int | 否 | 缩略图的宽度,单位为像素。
- 若上传的原图或视频缩略图小于 10 KB,图片原图即为缩略图。
- 若上传的图片超过 10 KB,缩略图的宽度取决于该参数的设置。
- 若不传该参数,缩略图的宽度默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。 | +| `thumbnail-height` | Int | 否 | 缩略图的高度,单位为像素。
- 若上传的原图或视频缩略图小于 10 KB,上传的图片即为缩略图。
- 若上传的图片超过 10 KB,缩略图的高度取决于该参数的设置。
- 若不传该参数,缩略图的高度默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **消息** 页面修改该默认值。 | +| `thumbnail-width` | Int | 否 | 缩略图的宽度,单位为像素。
- 若上传的原图或视频缩略图小于 10 KB,图片原图即为缩略图。
- 若上传的图片超过 10 KB,缩略图的宽度取决于该参数的设置。
- 若不传该参数,缩略图的宽度默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **消息** 页面修改该默认值。 | #### 请求 body diff --git a/docs/document/server-side/message_recall.md b/docs/document/server-side/message_recall.md index 89a3e3cb3..de077666d 100644 --- a/docs/document/server-side/message_recall.md +++ b/docs/document/server-side/message_recall.md @@ -165,10 +165,10 @@ curl -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json | 400 | message_recall_error | can’t find msg to | 未找到撤回消息的接收⽅。 | 需传入正确的消息接收方。 | | 403 | message_recall_error | exceed recall time limit | 消息撤回超时。 | 消息撤回时长默认为消息发送后的 2 分钟。 | | 403 | message_recall_error | not_found msg | 消息因过期在服务端删除或消息已被撤回。 | 若撤回过期的消息,你需要开启强制撤回,即将 `force` 设置为 `true`。这种情况下,会撤回接收方在本地保存的消息,但发送方本地消息仍存在。
若消息已被撤回,则无需重复撤回。 | -| 403 | forbidden_op | message recall service is unopened | 消息撤回服务未在环信即时通讯云管理后台开通。| 请先在环信即时通讯云管理后台开通该服务。 | +| 403 | forbidden_op | message recall service is unopened | 消息撤回服务未在环信控制台开通。| 请先在环信控制台开通该服务。 | | 500 | | internal error | 后端服务出现异常。 | | -例如,消息撤回服务未在环信即时通讯云管理后台开通,返回示例如下: +例如,消息撤回服务未在环信控制台开通,返回示例如下: ```json { diff --git a/docs/document/server-side/overview.md b/docs/document/server-side/overview.md index 73883037f..90c682b90 100644 --- a/docs/document/server-side/overview.md +++ b/docs/document/server-side/overview.md @@ -43,7 +43,7 @@ 环信不同数据中心的 REST API 请求域名 {host}: -应用所在数据中心可以在环信用户管理后台 > 应用列表找到对应的 App Key 点击 **管理** > **即时通讯** > **服务概览** 中查看: +应用所在数据中心可以在环信控制台的应用列表找到对应的 App Key,点击 **管理**,在 **应用概览** 中查看: ![img](/images/applet/service_overview.png) diff --git a/docs/document/server-side/push.md b/docs/document/server-side/push.md index 7c4947d85..b5f2b8e7c 100644 --- a/docs/document/server-side/push.md +++ b/docs/document/server-side/push.md @@ -4,10 +4,6 @@ 本文展示如何调用环信即时通讯 RESTful API 实现离线推送,包括设置离线推送通知显示的昵称、推送通知方式及免打扰模式。调用以下方法前,请先参考 [接口频率限制](limitationapi.html) 了解即时通讯 RESTful API 的调用频率限制。 -:::tip -若要使用离线推送的高级功能,即设置推送通知模式、免打扰模式和自定义推送模板,你需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)中点击你的应用后选择 **即时通讯** > **功能配置** > **功能配置总览** 开通离线推送高级功能。 -::: - ## 公共参数 以下表格列举了即时通讯 RESTful API 的公共请求参数和响应参数: @@ -854,24 +850,23 @@ curl -X GET 'https://XXXX/XXXX/XXXX/users/XXXX/notification/language' \ ## 使用推送模板 -你可以使用推送模板设置推送标题和内容,即调用以下 REST API 配置默认推送模板 `default` 和自定义推送模板。除此之外,你也可以在[环信控制台](https://console.easemob.com/user/login)设置推送模板,详见 [推送模板配置文档](/document/android/push/push_template.html)。 - -**对于群组消息,你可以使用定向模板向某些用户推送与其他用户不同的离线通知。** +你可以使用推送模板设置推送标题和内容,即调用以下 REST API 配置默认推送模板 **default**、**detail** 和自定义推送模板。除此之外,你也可以在 [环信控制台](https://console.easemob.com/user/login)设置推送模板,详见 [推送模板配置文档](/document/android/push/push_template.html)。 -使用推送模板有以下优势: - -1. 自定义修改环信服务端默认推送内容。 - -2. 接收方可以决定使用哪个模板。 - -3. 按优先级选择模板使用方式。 +推送模板的特点如下: +1. 推送模板的优先级高于 [调用 API 设置通知栏的推送内容](push_display_attribute.html)。 +2. 实现自定义修改环信服务端默认推送内容。 +3. 对于群组消息,你可以使用定向模板向某些用户推送与其他用户不同的离线通知。 +4. 接收方可以决定使用哪个模板。 +5. 按优先级选择模板使用方式: + - 使用自定义推送模板的优先级高于默认推送模板。 + - 若发送方发消息时设置了推送模板,接收方即使设置了推送模板,收到推送通知后也按照发送方设置的推送模板显示。 **推送通知栏内容设置的使用优先级** 通知栏中显示的推送标题和内容可通过以下方式设置,优先级为由低到高: 1. 发送消息时使用默认的推送标题和内容:设置推送通知的展示方式 `notification_display_style`。推送标题为“您有一条新消息”,推送内容为“请点击查看”。 -2. 发送消息时使用默认模板:若有默认模板 `default`,发消息时无需指定。 +2. 发送消息时使用默认模板:若有默认模板 **default** 和 **detail**,发消息时无需指定。 3. 发送消息时使用扩展字段自定义要显示的推送标题和推送内容,即 `em_push_title` 和 `em_push_content`。 4. 接收方设置了推送模板。 5. 发送消息时通过消息扩展字段指定模板名称。 @@ -880,9 +875,9 @@ curl -X GET 'https://XXXX/XXXX/XXXX/users/XXXX/notification/language' \ #### 功能说明 -创建离线推送消息模板,包括默认模板 `default` 和自定模板。你可以通过 [环信控制台](https://console.easemob.com/user/login) 创建推送模板,详见 [推送模板配置文档](/document/android/push/push_template.html#开通服务)。 +创建离线推送消息模板,包括默认模板 **default**、**detail** 和自定义模板。你可以通过 [环信控制台](https://console.easemob.com/user/login) 创建推送模板,详见 [推送模板配置文档](/document/android/push/push_template.html#开通服务)。 -若使用默认模板 **default**,消息推送时自动使用默认模板,创建消息时无需传入模板名称。 +若使用默认模板 **default** 和 **detail**,消息推送时自动使用默认模板,创建消息时无需传入模板名称。 **调用频率上限**:10 次/秒/App Key diff --git a/docs/document/unity/connection.md b/docs/document/unity/connection.md index 472132b54..2afa9b962 100644 --- a/docs/document/unity/connection.md +++ b/docs/document/unity/connection.md @@ -81,4 +81,4 @@ SDKClient.Instance.DeleteConnectionDelegate(connectionDelegate); - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file diff --git a/docs/document/unity/error.md b/docs/document/unity/error.md index e5a9aecb0..f302bd46b 100644 --- a/docs/document/unity/error.md +++ b/docs/document/unity/error.md @@ -62,11 +62,11 @@ SDKClient.Instance.Login(username, passwd, | 214 | USER_LOGIN_TOO_MANY_DEVICES | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | 可增加同时在线的设备数量,或先使用 `SDKClient#KickDevice` 踢掉其他设备再登录。 | | 215 | USER_MUTED | 用户在群组或聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | 用户在群组/聊天室内被禁言情况下,不能发送消息,可在 UI 上限制。 | | 216 | USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | 密码更新会收到回调`IConnectionDelegate#OnChangedIMPwd`,需要在收到该回调时,调用 `SDKClient#Logout` 方法,并回到登录页面。 | -| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`IConnectionDelegate#OnKickedByOtherDevice`。收到该回调时,需调用`SDKClient#Logout` 方法,并回到登录页面。 | +| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`IConnectionDelegate#OnKickedByOtherDevice`。收到该回调时,需调用`SDKClient#Logout` 方法,并回到登录页面。 | | 218 | USER_ALREADY_LOGIN_ANOTHER | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | 如果在已登录情况下,要登录另一个账号,需要先调用`SDKClient#Logout` 退出账号。 | | 219 | USER_MUTED_BY_ADMIN | 用户被禁言:用户在群组/聊天室开启全员禁言的情况下发送消息时提示该错误。 | 在群组/聊天室开启全员禁言的情况下,不能发送消息,可在 UI 上限制。 | | 220 | USER_DEVICE_CHANGED | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 | 登录失败的设备会收到 `IConnectionDelegate#OnLoggedOtherDevice` 事件。收到该事件时,需调用 `Client#Logout` 方法,并回到登录页面。 | -| 221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。 | 需要先调用 `ContactManager#AddContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | +| 221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面开启好友关系检查功能。 | 需要先调用 `ContactManager#AddContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | | 300 | SERVER_NOT_REACHABLE | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误。 | 调用登录 API 返回该错误码,可能是由于网络受限,或域名被封禁,可尝试切换设备网络。如果用户在沙特/菲律宾等地区,需要联系商务,开启 dnsconfig中 TLS 加密。其他操作返回该错误码,一般是网络问题,可在切换网络或延迟一段时间后重新调用。 | | 301 | SERVER_TIMEOUT | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。 | 一般是网络问题,可在切换网络或延迟一段时间后重新调用 API。 | | 302 | SERVER_BUSY | 服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。 | 检查调用的 API 是否重复调用。如果在上次调用后,结果未返回时重复调用 API,可能返回该错误码。 | diff --git a/docs/document/unity/login.md b/docs/document/unity/login.md index b6cc5a1f5..4ba53d3a3 100644 --- a/docs/document/unity/login.md +++ b/docs/document/unity/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在 [环信控制台](https://console.easemob.com/user/login) 的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见 [授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户) 和 [批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户) 的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在 [环信控制台](https://console.easemob.com/user/login) 的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/unity/overview.md b/docs/document/unity/overview.md index 5d6f3c098..31b9c951e 100644 --- a/docs/document/unity/overview.md +++ b/docs/document/unity/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信控制台](https://console.easemob.com/user/login)。 ## 集成环境 @@ -61,7 +61,7 @@ SDKClient.Instance.InitWithOptions(options); ### SDK 注册 -若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录 [环信控制台](https://console.easemob.com/user/login),选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 ```csharp SDKClient.Instance.CreateAccount(username, password, diff --git a/docs/document/unity/quickstart.md b/docs/document/unity/quickstart.md index c5bb19a8f..66c0364ea 100644 --- a/docs/document/unity/quickstart.md +++ b/docs/document/unity/quickstart.md @@ -32,7 +32,7 @@ | macOS | macOS 10.0 或以上 | Xcode 9.0 或以上,Visual Studio for Mac 2019 或以上 | | Windows | Windows 10 或以上 | Microsoft Visual Studio 2019 或以上 | -- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信控制台](https://console.easemob.com/user/login)。 - 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。 ## 项目设置 diff --git a/docs/document/web/connection.md b/docs/document/web/connection.md index f144f20e4..3a07bedef 100644 --- a/docs/document/web/connection.md +++ b/docs/document/web/connection.md @@ -50,4 +50,4 @@ conn.addEventHandler("connectionListener", { - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 diff --git a/docs/document/web/error.md b/docs/document/web/error.md index d71a4488e..e0d2461dc 100644 --- a/docs/document/web/error.md +++ b/docs/document/web/error.md @@ -34,11 +34,11 @@ error.type === statusCode.WEBIM_CONNCTION_USER_NOT_ASSIGN_ERROR 其中 `error` | 204 | USER_NOT_FOUND | 用户不存在,如创建群拉人时不存在的用户报错。 | 检查 userId 是否正确。| | 205 | MESSAGE_PARAMETER_ERROR | 消息参数错误。如撤回消息时未传消息 ID 或者发送消息时未传消息接收方的用户 ID。|确保消息⾥包含消息 ID 和接收方用户 ID,即 `id` 和 `to`。 | | 206 | WEBIM_CONNCTION_USER_LOGIN_ANOTHER_DEVICE | 用户在其他设备登录:如果没有开启多设备登录,则在其他设备登录会将当前登录的设备踢下线,用户会收到此错误。若开启了多设备登录并配置了支持的设备数量,设备间的互踢策略与 `ConnectionParameters#isFixedDeviceId` 参数有关,详见[多设备文档](multi_device.html)。 | 开启多设备功能,详见 [多设备⽂档](https://doc.easemob.com/document/web/multi_device.html)。 | -| 207 | WEBIM_CONNCTION_USER_REMOVED | 用户已经被注销:如果登录用户的 ID 被管理员从管理后台删除则会收到此错误。 | 提示⽤户被注销。| +| 207 | WEBIM_CONNCTION_USER_REMOVED | 用户已经被注销:如果登录用户的 ID 被管理员从环信控制台删除则会收到此错误。 | 提示⽤户被注销。| | 208 | WEBIM_USER_ALREADY_LOGIN | 已经登录,又重复登录。 | 不能重复登录。 | | 216 | WEBIM_CONNCTION_USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 |提示密码已经修改,请重新登录。| -| 217 | WEBIM_CONNCTION_USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备登录后,如果用户在其他设备上调用 API 或者通过管理后台踢出当前设备登录的 ID,SDK 会提示该错误。 | 提示被踢下线。| -| 219 | USER_MUTED_BY_ADMIN | 用户被全局禁言:在管理后台禁言了此用户后,该用户发送消息时会提示该错误。 | 提示⽤户已被禁⾔。| +| 217 | WEBIM_CONNCTION_USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备登录后,如果用户在其他设备上调用 API 或者通过环信控制台踢出当前设备登录的 ID,SDK 会提示该错误。 | 提示被踢下线。| +| 219 | USER_MUTED_BY_ADMIN | 用户被全局禁言:在环信控制台禁言了此用户后,该用户发送消息时会提示该错误。 | 提示⽤户已被禁⾔。| | 221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。该功能可在控制台开通。 | 提示⽤户⾮对⽅好友。| | 500 | SERVER_BUSY | 服务器忙碌。 | 提示服务忙,请重试。| | 501 | MESSAGE_INCLUDE_ILLEGAL_CONTENT | 消息含有非法内容:如果消息被过滤系统识别为非法消息时返回该错误。 | 提示消息发送失败,包含敏感词等⾮法内容。 | diff --git a/docs/document/web/login.md b/docs/document/web/login.md index 8a398bd67..60050bb36 100644 --- a/docs/document/web/login.md +++ b/docs/document/web/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在 [环信云控制台](https://console.easemob.com/user/login) 的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见 [授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户) 和 [批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户) 的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在 [环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/web/message_send.md b/docs/document/web/message_send.md index 1c507410e..b0dc0e55d 100644 --- a/docs/document/web/message_send.md +++ b/docs/document/web/message_send.md @@ -130,7 +130,7 @@ function sendPrivateAudio() { ### 发送图片消息 -对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。 +对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 [环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **消息** 页面修改该默认值。 创建和发送图片消息,示例代码如下所示: diff --git a/docs/document/windows/connection.md b/docs/document/windows/connection.md index 472132b54..2afa9b962 100644 --- a/docs/document/windows/connection.md +++ b/docs/document/windows/connection.md @@ -81,4 +81,4 @@ SDKClient.Instance.DeleteConnectionDelegate(connectionDelegate); - 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。 - 用户登录设备数量超过限制,提示错误码 214。 - 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。 -- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file +- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。 \ No newline at end of file diff --git a/docs/document/windows/error.md b/docs/document/windows/error.md index 84ecc2993..e59cf67ef 100644 --- a/docs/document/windows/error.md +++ b/docs/document/windows/error.md @@ -62,11 +62,11 @@ SDKClient.Instance.Login(username, passwd, | 214 | USER_LOGIN_TOO_MANY_DEVICES | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | 可增加同时在线的设备数量,或先使用 `SDKClient#KickDevice` 踢掉其他设备再登录。 | | 215 | USER_MUTED | 用户在群组或聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | 用户在群组/聊天室内被禁言情况下,不能发送消息,可在 UI 上限制。 | | 216 | USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | 密码更新会收到回调`IConnectionDelegate#OnChangedIMPwd`,需要在收到该回调时,调用 `SDKClient#Logout` 方法,并回到登录页面。 | -| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`IConnectionDelegate#OnKickedByOtherDevice`。收到该回调时,需调用`SDKClient#Logout` 方法,并回到登录页面。 | +| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调`IConnectionDelegate#OnKickedByOtherDevice`。收到该回调时,需调用`SDKClient#Logout` 方法,并回到登录页面。 | | 218 | USER_ALREADY_LOGIN_ANOTHER | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | 如果在已登录情况下,要登录另一个账号,需要先调用`SDKClient#Logout` 退出账号。 | | 219 | USER_MUTED_BY_ADMIN | 用户被禁言:用户被全局禁言后发送消息时提示该错误。 | 在群组/聊天室开启全员禁言的情况下,不能发送消息,可在 UI 上限制。 | | 220 | USER_DEVICE_CHANGED | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 | 登录失败的设备会收到 `IConnectionDelegate#OnLoggedOtherDevice` 事件。收到该事件时,需调用 `Client#Logout` 方法,并回到登录页面。 | -| 221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。 | 需要先调用 `ContactManager#AddContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | +| 221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面开启好友关系检查功能。 | 需要先调用 `ContactManager#AddContact` 方法添加好友。对方同意好友请求后,才能发送消息。 | | 300 | SERVER_NOT_REACHABLE | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误。 | 调用登录 API 返回该错误码,可能是由于网络受限,或域名被封禁,可尝试切换设备网络。如果用户在沙特/菲律宾等地区,需要联系商务,开启 dnsconfig中 TLS 加密。其他操作返回该错误码,一般是网络问题,可在切换网络或延迟一段时间后重新调用。 | | 301 | SERVER_TIMEOUT | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。 | 一般是网络问题,可在切换网络或延迟一段时间后重新调用 API。 | | 302 | SERVER_BUSY | 服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。 | 检查调用的 API 是否重复调用。如果在上次调用后,结果未返回时重复调用 API,可能返回该错误码。 | diff --git a/docs/document/windows/login.md b/docs/document/windows/login.md index 80741613b..2f291f8c1 100644 --- a/docs/document/windows/login.md +++ b/docs/document/windows/login.md @@ -6,9 +6,9 @@ 1. 可通过以下两种方式调用接口创建用户: -- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在 [环信控制台](https://console.easemob.com/user/login) 的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见 [授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户) 和 [批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户) 的接口介绍。 +- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。 -- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在 [环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 +- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。 2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户: diff --git a/docs/document/windows/overview.md b/docs/document/windows/overview.md index e8f9d465e..b2b8129ca 100644 --- a/docs/document/windows/overview.md +++ b/docs/document/windows/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信控制台](https://console.easemob.com/user/login)。 ## 集成环境 @@ -61,7 +61,7 @@ SDKClient.Instance.InitWithOptions(options); ### SDK 注册 -若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信控制台](https://console.easemob.com/user/login),选择 **功能配置 > 基础功能** > **用户**,将 **用户注册模式** 设置为 **开放注册**。 ```csharp SDKClient.Instance.CreateAccount(username, password, diff --git a/docs/product/data_center.md b/docs/product/data_center.md index f2491936b..03138fe0a 100644 --- a/docs/product/data_center.md +++ b/docs/product/data_center.md @@ -27,7 +27,7 @@ ![img](/images/product/data_center_selection.png) -应用所在数据中心可以在环信控制台的 **即时通讯>服务概览** 页面中查看: +应用所在数据中心可以在环信控制台的 **应用概览** 页面中查看: ![img](/images/product/data_center.png) diff --git a/docs/product/faq_quality_issues.md b/docs/product/faq_quality_issues.md index 2f641a24e..afc585a10 100644 --- a/docs/product/faq_quality_issues.md +++ b/docs/product/faq_quality_issues.md @@ -70,11 +70,14 @@ 2.若排除以上情况,可根据 App Key、发送者 ID 或消息 ID、消息发送时间在 [环信控制台](https://console.easemob.com/user/login) 自行查询消息投递状态,具体操作如下: -1. 登录环信控制台。 -2. 在首页的 应用列表 区域中,点击具体应用的 **操作** 栏中的 **管理**。 -3. 在界面左侧导航栏中选择**应用详情**下的**即时通讯** > **实时查询** > **IM消息投递查询**。 +a. 登录 [环信控制台](https://console.easemob.com/user/login)。 +b. 选择页面上方的 **应用管理**。在弹出的应用列表页面,单击你的应用的 **操作** 栏中的 **管理**。 +c. 在左侧导航栏,选择 **运营管理 > 问题排查 > IM用户投递查询**。 +d. 设置查询参数,点击 **查询**。 -![img](/images/product/faq-msgdeliveryquery.png) +下图为查询 app 管理员调用 REST API 在两个群组中发送的文本消息。 + +![img](/images/console/operation_troubleshooting_message_delivery.png) ## 参考 @@ -82,12 +85,14 @@ 在使用环信即时通讯 IM 基础聊天业务的场景下,处理特定业务需求时需知晓某些用户是否在线。为此,环信即时通讯 IM 提供单个用户以及批量用户是否在线状态的查询,详见 [用户在线状态回调](/document/server-side/callback_login_logout.html)。 -除此之外,可以在 [环信控制台](https://console.easemob.com/user/login) 上查询用户连接状态,具体操作如下: +除此之外,可以在 [环信控制台](https://console.easemob.com/user/login) 上查询单个用户在最近三天内的设备连接状态。,具体操作如下: -1. 登录环信控制台。 -2. 在首页的 **应用列表** 区域中,点击具体应用的 **操作** 栏中的 **管理**。 -3. 在界面左侧导航栏中选择 **应用详情** 下的 **即时通讯** > **实时查询** > **IM用户连接状态**。 +1. 登录 [环信控制台](https://console.easemob.com/user/login)。 +2. 选择页面上方的 **应用管理**。在弹出的应用列表页面,单击你的应用的 **操作** 栏中的 **管理**。 +3. 在左侧导航栏,选择 **运营管理 > 问题排查 > 用户连接状态查询**。 +4. 输入用户 ID,设置查询时间,点击 **查询**。 +5. 在 **用户状态历史** 栏中查看用户的设备连接状态。 -![img](/images/product/faq-userconnectionstatus.png) +![img](/images/console/operation_troubleshooting_user_connection.png) 说明: 环信即时通讯 IM SDK 未提供直接查询用户是否在线的方法,客户端可以封装查询用户是否在线的接口调用或者让自己服务器端来调用再与自己客户端交互。 \ No newline at end of file diff --git a/docs/product/message_single_chat.md b/docs/product/message_single_chat.md index 466108e39..ca5c2a5a3 100644 --- a/docs/product/message_single_chat.md +++ b/docs/product/message_single_chat.md @@ -27,9 +27,9 @@ | 单聊消息发送控制 | 描述 | | :--------- | :----- | -| 陌生人之间发送消息 | App 内任意两个用户之间均可发送单聊消息。该场景下,在环信控制台的 **即时通讯 > 服务概览** 页面的 **设置** 区域下关闭了 **好友关系检查** 功能。 | +| 陌生人之间发送消息 | App 内任意两个用户之间均可发送单聊消息。该场景下,在环信控制台的 **功能配置 > 基础功能** > **用户** 页面关闭了 **好友关系检查** 功能。 | | App 管理员发送单聊消息 | App 管理员模拟其他用户向 app 内任意用户发送消息。 | -| 只给好友发送消息 | 只能给好友发送消息,即在环信控制台的 **即时通讯 > 服务概览** 页面的 **设置** 区域下打开 **好友关系检查** 功能。 | +| 只给好友发送消息 | 只能给好友发送消息,即在环信控制台的 **功能配置 > 基础功能** > **用户** 页面打开 **好友关系检查** 功能。 | | 拒绝来自某用户的消息 | 可通过以下两种方法拒绝来自某个用户的消息:
- **将用户添加到黑名单**,拒绝来自该用户的消息。
- **将该用户从联系人列表移除。** 这种情况适用于 app 仅支持好友之间发送消息的情况。如果 app 支持陌生人之间发送消息,例如,用户 A 从用户 B 的联系人列表移除,用户 A 仍然可以向用户 B 发送消息吧。
- **全局禁言 (RESTful API)**:可通过对单个用户进行单聊全局禁言,使指定用户无法向 app 内的任何用户发送单聊消息。| |对消息放行或拦截|- **发送前回调**:环信 IM 服务器会在发送消息之前,向你的应用服务器发送请求,你可以根据业务需求配置规则决定下发或拦截消息。
- **内容审核**:基于内容审核结果对消息进行处理,包括拦截、替换敏感信息和放行消息。该服务只对文本、图片、音频和视频消息有效。 | diff --git a/docs/product/moderation/moderation_record_callback.md b/docs/product/moderation/moderation_record_callback.md index 554dc3e42..0cc967715 100644 --- a/docs/product/moderation/moderation_record_callback.md +++ b/docs/product/moderation/moderation_record_callback.md @@ -52,7 +52,7 @@ | callId | String| 回调的标识。格式为 {appkey}_{uuid},其中 UUID 为随机生成,作为每条回调的唯一标识。| | moderationResult | String | 消息处理结果:
- `PASS`:通过,直接下发消息;
- `REJECT`:拒绝下发;
- `EXCHANGE`:替换消息中的违规内容;
- `RECALL`:撤回发送的音频和视频。 | | providerResult | String | 审核结果:
- `PASS`:消息中不包含违规内容;
- `REVIEWED`:消息中疑似包含违规内容;
- `REJECT`:消息存在违规内容。| -| security | String | 签名,格式如下: MD5(callId+Secret+timestamp),其中 Secret 详见[环信 IM 管理后台](https://console.easemob.com/user/login)的回调规则。 | +| security | String | 签名,格式如下: MD5(callId+Secret+timestamp),其中 Secret 详见[环信控制台](https://console.easemob.com/user/login)的回调规则。 | | messageType | String | 消息类型:
- `txt`:文本消息;
- `img`:图片消息;
- `audio`:语音消息;
- `video`:视频消息;
- `custom`:自定义消息。 | | messageId | String | 消息 ID。 | | targetType | String | 会话类型。
- `chat`:单聊;
- `groupchat`:群聊;
- `chatroom`:聊天室。 | diff --git a/docs/product/pricing_method.md b/docs/product/pricing_method.md index 97698ee62..ffab4a759 100644 --- a/docs/product/pricing_method.md +++ b/docs/product/pricing_method.md @@ -10,10 +10,10 @@ 你可以参考如下步骤订阅即时通讯套餐包: -1. 登录[环信控制台](https://console.easemob.com/user/login),在 **应用列表** 区域,选择你的应用,点击 **操作** 栏中的 **管理** 链接。 -2. 在左侧导航栏,选择 **即时通讯** > **功能配置** > **版本开通**。 +1. 登录[环信控制台](https://console.easemob.com/user/login),在 **应用管理** 页面,选择你的 应用,点击 **操作** 栏中的 **管理** 链接。 +2. 在左侧导航栏,选择 **服务开通** > **套餐购买**。 3. 选择套餐包,点击 **立即开通**。 -4. 进入 **即时通讯IM 服务版本** 页面,查看套餐包的功能详情,选择 **我已阅读并同意《环信云服务购买协议》**,然后点击 **提交订单** 完成支付。 +4. 进入 **开通服务版本** 页面,查看套餐包的功能详情,然后点击 **下一步** 完成支付。 ### 升级套餐包 @@ -23,15 +23,16 @@ **方法一** -1. 登录[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,点击 **服务版本** 区域的 **当前版本** 对应的 **升级版本**,进入**即时通讯IM 服务版本** 页面。 - -2. 查看各套餐包的功能详情,根据业务需要选择套餐包,选择 **我已阅读并同意《环信云服务购买协议》**,点击 **提交订单**,完成支付。 +1. 登录[环信控制台](https://console.easemob.com/user/login),在 **应用管理** 页面,选择你的应用,点击 **操作** 栏中的 **管理** 链接。 +2. 在 **应用概览** 页面,在 **服务开通信息** 区域中点击 **调整套餐** +3. 查看各套餐包的功能详情,根据业务需要选择套餐包,点击 **下一步**,完成支付。 **方法二** -1. 在[环信控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **功能配置** > **功能配置总览**。 -2. 点击对应功能的 **操作** 一栏的 **升级**,进入**即时通讯IM 服务版本** 页面。 -3. 查看各套餐包的功能详情,根据业务需要选择套餐包,选择 **我已阅读并同意《环信云服务购买协议》**,点击 **提交订单**,完成支付。 +1. 登录[环信控制台](https://console.easemob.com/user/login),在 **应用管理** 页面,选择你的 应用,点击 **操作** 栏中的 **管理** 链接。 +2. 在左侧导航栏,选择 **服务开通** > **套餐购买**。 +3. 选择套餐包,点击 **立即开通**。 +4. 进入 **开通服务版本** 页面,查看套餐包的功能详情,然后点击 **下一步** 完成支付。 :::tip 1. 原版本下订阅的所有增值服务会同时取消订阅并退还剩余费用。若你仍需要增值服务,请重新订阅。 @@ -49,15 +50,11 @@ **方法一** -[订阅套餐包](#订阅套餐包)时,你可以在 **即时通讯IM 服务版本** 页面下的相应套餐标签页的 **可选增值服务** 区域选择所需增值服务进行订阅。 +[订阅套餐包](#订阅套餐包)时,你可以在 **开通服务版本** 页面的 **单独购买增值服务** 页签中选择所需增值服务进行订阅。 **方法二** 参考以下步骤订阅增值服务: -1. 选择 **即时通讯** > **功能配置** > **功能配置总览**,选择要开通的服务,点击 **操作栏** 中的 **增值服务** 链接。 - -2. 进入 **即时通讯IM 服务版本**页面下的 **单独购买增值服务** 标签页,选择增值服务对应的 **付费开通** 按钮或所需服务项目,确定购买时长,然后选择 **我已阅读并同意《环信云服务购买协议》**。 - -3. 点击 **提交订单**,完成支付。 - +1. 在左侧导航栏,选择 **服务开通** > **增值服务**。 +2. 在右侧的增值服务页面中分别订阅和开通内容审核、即时推送、消息翻译、服务端 API 调用和实时音视频服务。 diff --git a/docs/product/product_function.md b/docs/product/product_function.md index 5ff96d869..24cf480f9 100644 --- a/docs/product/product_function.md +++ b/docs/product/product_function.md @@ -169,10 +169,10 @@ | :------ | :----------- | | 创建应用 | 创建你的应用 | | 升级套餐包 | 自助开通专业版或旗舰版 IM | -| 订阅增值服务 | 开通消息回调、全局禁言等 [增值服务](/product/pricing_policy.html#增值服务费用) | +| 订阅增值服务 | 开通内容审核、实时音视频、即时推送等 [增值服务](/product/pricing_policy.html#增值服务费用) | | 账户中心 | 查看订单记录和消费账单 | | 开通功能 | 开通服务端会话列表或多端多设备等功能 | -| 服务概览 | 展示你的服务版本、域名配置等 | +| 应用概览 | 展示你的服务版本、域名配置等 | | 推送配置 | 包括各厂商推送证书管理和推送模板管理 | | 消息回调 | 发送前回调和发送后回调规则配置 | | IP 白名单 | 允许你赋给特定 IP 地址调用 RESTful API 的权限 | diff --git a/docs/product/product_user_relationship.md b/docs/product/product_user_relationship.md index b0bf9a4e3..5092304b6 100644 --- a/docs/product/product_user_relationship.md +++ b/docs/product/product_user_relationship.md @@ -58,8 +58,8 @@ 环信即时通讯 IM 默认支持陌生人之间发送单聊消息,即无需添加好友即可聊天。若仅允许好友之间发送单聊消息,你需要按以下步骤开启好友关系检查。 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **服务概览**。 -2. 在 **设置** 区域,点击 **好友关系检查**对应的 **打开**,则该功能的状态为**已开启**。若关闭该功能,点击 **关闭**。 +1. 在环信控制台左侧导航栏中,选择 **功能配置 > 基础功能** > **用户**。 +2. 点击 **好友关系检查** 对应的开启按钮。 该功能开启后,SDK 会在用户发起单聊时检查好友关系,若用户向陌生人发送单聊消息,SDK 会提示错误码 221。 ## 黑名单 diff --git a/docs/push/push_androidvendor_statistics.md b/docs/push/push_androidvendor_statistics.md index 3582b0bf3..bdc36861f 100644 --- a/docs/push/push_androidvendor_statistics.md +++ b/docs/push/push_androidvendor_statistics.md @@ -25,7 +25,7 @@ ![img](/images/instantpush/push_flyme_callbackaddr.png) -您可以在环信后台,**即时通讯** → **服务概览** 中查看当前 Appkey 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。 +您可以在环信控制台的 **应用概览** 页面中查看当前 App Key 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。 ![img](/images/instantpush/push_domain_name.png) diff --git a/docs/push/push_integration_note_ios.md b/docs/push/push_integration_note_ios.md index a8ba0cb8a..0e4be5dae 100644 --- a/docs/push/push_integration_note_ios.md +++ b/docs/push/push_integration_note_ios.md @@ -95,8 +95,8 @@ demo 中的 SDK 文件夹为 **Hyphenate SDK**,将 SDK 文件夹拖入到工 ``` 调用的 SDK 接口参数解释如下: -- App Key: 区别 APP 的标识,请参考[开发者注册及管理后台](https://docs-im.easemob.com/im/quickstart/guide/experience#注册并创建应用)。 -- apnsCertName: iOS 中推送证书名称,请参考[制作与上传推送证书](https://docs-im.easemob.com/im/ios/apns/deploy)。 +- App Key: 区别 APP 的标识,请参考 [环信控制台文档](/product/console/app_manage.html#获取应用凭证)。 +- apnsCertName: iOS 中推送证书名称,请参考 [创建推送证书](/document/ios/push/push_apns.html#创建推送证书) 和 [上传推送证书](/document/ios/push/push_apns.html#上传推送证书)。 ### SDK 登录流程 diff --git a/docs/uikit/chatuikit/android/chatfeature_message.md b/docs/uikit/chatuikit/android/chatfeature_message.md index 4e1c24e7b..45148bab4 100644 --- a/docs/uikit/chatuikit/android/chatfeature_message.md +++ b/docs/uikit/chatuikit/android/chatfeature_message.md @@ -81,7 +81,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 1. 开启消息翻译特性。 @@ -130,7 +130,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息表情回复特性在 `ChatUIKitConfig` 中默认关闭,即 `enableMessageReaction` 的默认值为 `false`。要开启该特性,将该参数设置为 `true`。示例代码如下: @@ -152,7 +152,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息话题特性在 `ChatUIKitConfig` 中默认关闭,即 `enableChatThreadMessage` 的默认值为 `false`。要开启该特性,需将该参数设置为 `true`。 diff --git a/docs/uikit/chatuikit/flutter/chatfeature_message.md b/docs/uikit/chatuikit/flutter/chatfeature_message.md index 49ba503aa..d0bf5da0a 100644 --- a/docs/uikit/chatuikit/flutter/chatfeature_message.md +++ b/docs/uikit/chatuikit/flutter/chatfeature_message.md @@ -97,7 +97,7 @@ ChatUIKitSettings.enableMessageReply = false; #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 1. 开启消息翻译特性。 @@ -135,7 +135,7 @@ ChatUIKitSettings.translateTargetLanguage = 'zh-Hans'; #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 单群聊 UiKit 的 `ChatUIKitSettings` 对象中提供了 `enableMessageReaction` 属性用于设置是否开启 `Reaction` 功能, 默认值为 `false`。要开启该功能,将该参数设置为 `true`。示例代码如下: @@ -153,7 +153,7 @@ ChatUIKitSettings.enableMessageReaction = true; #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息话题特性在 `ChatUIKitSettings.enableChatThreadMessage` 中提供开关,默认值为 `false`。要开启该特性,需将该参数设置为 `true`。 diff --git a/docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md b/docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md index 686f514d6..6e027bac0 100644 --- a/docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md +++ b/docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md @@ -289,7 +289,7 @@ ChatUIKitSettings.conversationListMuteImage = const AssetImage( 消息话题(即 `Thread`)指用户可以在群组聊天中根据一条消息创建话题进行深入探讨,讨论和追踪特定项目任务,而不影响其他聊天内容。 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/)上已开通该功能。 消息话题特性在 `ChatUIKitSettings.enableChatThreadMessage` 中提供开关,默认值为 `false`。要开启该特性,需将该参数设置为 `true`。 @@ -303,7 +303,7 @@ ChatUIKitSettings.conversationListMuteImage = const AssetImage( 消息翻译是指用户可以将一条消息翻译成其他语言。消息翻译可以帮助使用不同语言的用户进行沟通。 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/)上已试用该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/)上已试用该功能。 1. 开启消息翻译特性。 @@ -329,7 +329,7 @@ ChatUIKitSettings.conversationListMuteImage = const AssetImage( 表情回复(即 `Reaction`)指用户可以使用表情符号回复消息。表情回复可以帮助用户表达情绪、态度、进行调查或投票。在单群聊 UIKit 中,用户可以长按单条消息触发消息拓展功能菜单,选择表情回复。 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/)上已开通该功能。 单群聊 UiKit 的 `ChatUIKitSettings` 对象中提供了 `enableMessageReaction` 属性用于设置是否开启 `Reaction` 功能, 默认值为 `false`。要开启该功能,将该参数设置为 `true`。示例代码如下: diff --git a/docs/uikit/chatuikit/ios/chatfeature_message.md b/docs/uikit/chatuikit/ios/chatfeature_message.md index f6b0e7a1e..a184080c0 100644 --- a/docs/uikit/chatuikit/ios/chatfeature_message.md +++ b/docs/uikit/chatuikit/ios/chatfeature_message.md @@ -100,7 +100,7 @@ Appearance.chat.contentStyle: [MessageContentDisplayStyle] = [.withReply,.withAv #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 1. 开启消息翻译特性。 @@ -133,7 +133,7 @@ Appearance.chat.targetLanguage = .English #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息表情回复特性在 `Appearance.swift` 中默认关闭,即 `Appearance.chat.contentStyle` 数组中默认不包含 `.withMessageReaction`。 @@ -158,7 +158,7 @@ Appearance.chat.contentStyle.append(.withMessageReaction) #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 Thread 特性在 `Appearance.swift` 中默认关闭,即` Appearance.chat.contentStyle` 数组中默认不包含 `.withMessageThread`。 diff --git a/docs/uikit/chatuikit/react-native/chatfeature_message.md b/docs/uikit/chatuikit/react-native/chatfeature_message.md index 6c5cd2633..158d84a5d 100644 --- a/docs/uikit/chatuikit/react-native/chatfeature_message.md +++ b/docs/uikit/chatuikit/react-native/chatfeature_message.md @@ -68,7 +68,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 1. 开启消息翻译特性。 @@ -98,7 +98,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 单群聊 UiKit 的 `ContainerProps` 对象中提供了 `enableReaction` 属性用于设置是否开启 `Reaction` 功能, 默认值为 `false`。要开启该功能,将该参数设置为 `true`。 @@ -112,7 +112,7 @@ #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息话题特性在 `ContainerProps.enableThread` 中提供开关,默认值为 `false`。要开启该特性,需将该参数设置为 `true`。 diff --git a/docs/uikit/chatuikit/web/chatfeature_message.md b/docs/uikit/chatuikit/web/chatfeature_message.md index 0acca0ee0..d1d5e8633 100644 --- a/docs/uikit/chatuikit/web/chatfeature_message.md +++ b/docs/uikit/chatuikit/web/chatfeature_message.md @@ -96,7 +96,7 @@ features.chat.message.reply = false; #### 如何使用 -1. 使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 +1. 使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 消息翻译特性默认开启,若要在全局配置中关闭,可以进行如下设置: @@ -126,7 +126,7 @@ features.chat.message.translate = false; #### 如何使用 -使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 表情回复特性默认开启,若要在全局配置中关闭,可以进行如下设置: @@ -148,7 +148,7 @@ features.chat.message.reaction = false; #### 如何使用 -1. 使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 +1. 使用该特性前,请确保在[环信控制台](https://console.easemob.com/user/login)上已开通该功能。 消息话题特性默认开启,若要在全局配置中关闭,可以进行如下设置: From 3d20617ec0b9b987d78a5c57256a966d7661b14f Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Sat, 11 Oct 2025 11:47:31 +0800 Subject: [PATCH 2/8] modify --- docs/document/server-side/user_favorite.md | 2 +- docs/product/aigc/aigc_rest_api.md | 2 +- docs/product/aigc/aigc_selection.md | 2 +- docs/product/enable_and_configure_IM.md | 22 +++++++++---------- .../voiceroom/demo_scenario_introduction.md | 2 +- .../chatuikit/android/chatuikit_overview.md | 2 +- .../chatuikit/flutter/chatuikit_overview.md | 2 +- .../chatuikit/harmonyos/chatuikit_overview.md | 2 +- .../uikit/chatuikit/ios/chatuikit_overview.md | 2 +- .../react-native/chatuikit_overview.md | 2 +- .../chatuikit/uniapp/chatuikit_overview.md | 2 +- .../uikit/chatuikit/web/chatuikit_overview.md | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/document/server-side/user_favorite.md b/docs/document/server-side/user_favorite.md index 841bdfc9f..886d95a59 100644 --- a/docs/document/server-side/user_favorite.md +++ b/docs/document/server-side/user_favorite.md @@ -1,6 +1,6 @@ # 用户收藏 -环信即时通讯云 IM 支持你收藏聊天过程中发送成功的各类消息或你的其他自定义内容。这些收藏的内容永久保存,你可以随时查看。例如,你若收藏指定的消息附件,可[将消息附件设置为永久存储](message_attachment_storage.html),然后再收藏,即可随时查看这些附件内容。 +环信即时通讯 IM IM 支持你收藏聊天过程中发送成功的各类消息或你的其他自定义内容。这些收藏的内容永久保存,你可以随时查看。例如,你若收藏指定的消息附件,可[将消息附件设置为永久存储](message_attachment_storage.html),然后再收藏,即可随时查看这些附件内容。 ## 公共参数 diff --git a/docs/product/aigc/aigc_rest_api.md b/docs/product/aigc/aigc_rest_api.md index 3df99684f..821f53902 100644 --- a/docs/product/aigc/aigc_rest_api.md +++ b/docs/product/aigc/aigc_rest_api.md @@ -1,6 +1,6 @@ # AI 智能 -环信即时通讯云提供 REST API 获取 app 下的机器人列表。**如果需要该功能相关的其他 REST API,请联系环信商务。** +环信即时通讯 IM 提供 REST API 获取 app 下的机器人列表。**如果需要该功能相关的其他 REST API,请联系环信商务。** ## 前提条件 diff --git a/docs/product/aigc/aigc_selection.md b/docs/product/aigc/aigc_selection.md index 64f4e7a53..4fee231bb 100644 --- a/docs/product/aigc/aigc_selection.md +++ b/docs/product/aigc/aigc_selection.md @@ -3,7 +3,7 @@ 本文提供两种方案供你接入环信 AI 聊天服务,实现与机器人的聊天功能: - **方案一**:利用服务器回调服务,在 IM 中引入 AI 服务。 -- **方案二**:使用环信即时通讯云提供的 AI 智能功能。 +- **方案二**:使用环信即时通讯 IM 提供的 AI 智能功能。 ## 方案一 diff --git a/docs/product/enable_and_configure_IM.md b/docs/product/enable_and_configure_IM.md index 1a86c279f..1e5fd3bf8 100644 --- a/docs/product/enable_and_configure_IM.md +++ b/docs/product/enable_and_configure_IM.md @@ -95,7 +95,7 @@ ## 设置消息撤回(REST & 客户端) -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到消息撤回(REST&客户端),单击右侧的 **设置**(已开通状态下)。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到消息撤回(REST&客户端),单击右侧的 **设置**(已开通状态下)。 2. 在弹出的 **消息撤回时间设置** 对话框中,设置消息可撤回时长。端消息撤回时长和 REST 消息撤回时长均不能超过 7 天。 3. 单击 **确定** 保存配置。 @@ -105,7 +105,7 @@ 群聊消息的已读回执使用前,需要开通该功能。 -在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到**消息已读回执(群聊)**开通功能。 +在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到**消息已读回执(群聊)**开通功能。 ![img](/images/product/message/message_receipt.png) @@ -113,7 +113,7 @@ 通过 RESTful 接口发送的消息默认不写入会话列表,若需要此类消息写入会话列表,需要开通。 -在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到**rest发消息写会话列表**,然后点击**设置**。 +在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签下,搜索找到**rest发消息写会话列表**,然后点击**设置**。 ![img](/images/product/enable_and_configure/message_rest_conversation.png) @@ -311,7 +311,7 @@ 1. 开通消息举报功能。 -在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到 **消息举报**,进行开通。 +在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到 **消息举报**,进行开通。 对于专业版,消息举报为增值服务,你需要点击 **增值服务** 单独付费开通,如下图所示。 @@ -329,7 +329,7 @@ ## 敏感词设置 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到敏感词,单击右侧的 **设置**(已开通状态下),打开敏感词配置页面。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到敏感词,单击右侧的 **设置**(已开通状态下),打开敏感词配置页面。 2. 在敏感词配置页面,单击 **服务设置** 旁边的 **编辑**,在弹出的 **敏感词服务** 对话框中,按需求选择对应设置。 3. 单击 **确定** 保存配置。 @@ -339,7 +339,7 @@ ### 添加 IP 白名单 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到 **REST-IP 白名单**,单击右侧的 **设置**(已开通状态下),打开**安全配置**页面。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **功能配置总览**。在 **功能配置总览** 页面的 **基础功能** 页签中搜索找到 **REST-IP 白名单**,单击右侧的 **设置**(已开通状态下),打开**安全配置**页面。 2. 在 **安全配置** 页面,单击 **添加IP**,在弹出的 **添加 IP** 对话框中,输入 IP 地址。 :::tip 1. 每次只能输入 1 个 IP 地址,最多可添加 8 个。 @@ -354,7 +354,7 @@ 如果你不再允许某个 IP 地址继续发送 REST 消息,可以在 IP 白名单中将其删除。如果你删除了 IP 白名单中所有 IP,即白名单列表为空,则默认所有 IP 地址均可发送 REST 消息。 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **功能配置** > **安全配置**。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **功能配置** > **安全配置**。 2. 在 **IP白名单** 列表中,单击目标 IP 右侧的 **删除**。 @@ -366,14 +366,14 @@ 环信即时通讯 IM 默认支持陌生人之间发送单聊消息,即无需添加好友即可聊天。若仅允许好友之间发送单聊消息,你需要按以下步骤开启好友关系检查。 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯** > **服务概览**。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯** > **服务概览**。 2. 在 **设置** 区域,点击 **好友关系检查**对应的 **打开**,则该功能的状态为**已开启**。若关闭该功能,点击 **关闭**。 该功能开启后,SDK 会在用户发起单聊时检查好友关系,若用户向陌生人发送单聊消息,SDK 会提示错误码 221。 ## 创建 IM 用户 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯 > 运营服务 > 用户管理**。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯 > 运营服务 > 用户管理**。 2. 在 **用户管理** 页面,点击 **创建IM用户** 按钮,在弹出的对话框中填写用户 ID、推送昵称和密码,然后点击 **保存**。 @@ -387,7 +387,7 @@ ## 创建群组 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯 > 运营服务 > 群组管理**。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯 > 运营服务 > 群组管理**。 2. 在 **群组管理** 页面,点击 **创建群组**,在弹出的对话框中设置群组名称、描述、群主、最大人数、群组类型、申请入群方式、邀请方式和被邀请用户是否需要确认,然后点击 **创建**。 @@ -403,7 +403,7 @@ ## 创建聊天室 -1. 在环信即时通讯云的左侧导航栏中,选择 **即时通讯 > 运营服务 > 聊天室管理**。 +1. 在环信即时通讯 IM 的左侧导航栏中,选择 **即时通讯 > 运营服务 > 聊天室管理**。 2. 在 **聊天室管理** 页面,点击 **创建聊天室**,在弹出的对话框中设置聊天室名称、描述、超级管理员和普通管理员的用户 ID 以及最大成员数,然后点击 **保存**。 diff --git a/docs/product/voiceroom/demo_scenario_introduction.md b/docs/product/voiceroom/demo_scenario_introduction.md index 903c2061a..3505d8fa5 100644 --- a/docs/product/voiceroom/demo_scenario_introduction.md +++ b/docs/product/voiceroom/demo_scenario_introduction.md @@ -2,7 +2,7 @@ ## 场景描述 -环信语聊房(Easemob Chat Room)场景方案是环信打造的一款低门槛、高可用的语聊房场景方案。该场景方案融合了环信即时通讯云的聊天室和声网 RTC 的音频技术,提供市面主流的语聊房 App 的功能,其核心功能包括房间管理、麦位控制、聊天打赏和音频特效等,覆盖语音游戏、语音社交、相亲交友等场景,能够较为全面满足客户的语聊房开发需求。同时,环信 IM 的聊天室中的 [KV 属性管理和自动销毁](/document/ios/room_attributes.html)以及[消息优先级](/document/ios/message_send.html#聊天室消息优先级与消息丢弃逻辑)等功能能够对语聊房的功能性进行有效补充和拓展。 +环信语聊房(Easemob Chat Room)场景方案是环信打造的一款低门槛、高可用的语聊房场景方案。该场景方案融合了环信即时通讯 IM 的聊天室和声网 RTC 的音频技术,提供市面主流的语聊房 App 的功能,其核心功能包括房间管理、麦位控制、聊天打赏和音频特效等,覆盖语音游戏、语音社交、相亲交友等场景,能够较为全面满足客户的语聊房开发需求。同时,环信 IM 的聊天室中的 [KV 属性管理和自动销毁](/document/ios/room_attributes.html)以及[消息优先级](/document/ios/message_send.html#聊天室消息优先级与消息丢弃逻辑)等功能能够对语聊房的功能性进行有效补充和拓展。 ## 功能列表 diff --git a/docs/uikit/chatuikit/android/chatuikit_overview.md b/docs/uikit/chatuikit/android/chatuikit_overview.md index 2e03c313a..aac13b965 100644 --- a/docs/uikit/chatuikit/android/chatuikit_overview.md +++ b/docs/uikit/chatuikit/android/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信单群聊 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/chatuikit-android) 和 [Android Demo 源码](https://github.com/easemob/easemob-demo-android)。 diff --git a/docs/uikit/chatuikit/flutter/chatuikit_overview.md b/docs/uikit/chatuikit/flutter/chatuikit_overview.md index 00a6b3caa..ce992c4ef 100644 --- a/docs/uikit/chatuikit/flutter/chatuikit_overview.md +++ b/docs/uikit/chatuikit/flutter/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信单群聊 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 若要访问源码,请点击[这里](https://github.com/easemob/chatuikit-flutter)。 diff --git a/docs/uikit/chatuikit/harmonyos/chatuikit_overview.md b/docs/uikit/chatuikit/harmonyos/chatuikit_overview.md index c3dabbc86..6169766e7 100644 --- a/docs/uikit/chatuikit/harmonyos/chatuikit_overview.md +++ b/docs/uikit/chatuikit/harmonyos/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信单群聊 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/easemob-uikit-harmonyos)。 diff --git a/docs/uikit/chatuikit/ios/chatuikit_overview.md b/docs/uikit/chatuikit/ios/chatuikit_overview.md index 3936e2a17..3488fe3c2 100644 --- a/docs/uikit/chatuikit/ios/chatuikit_overview.md +++ b/docs/uikit/chatuikit/ios/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信聊天 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信聊天 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/chatuikit-ios) 和 [iOS Demo 源码](https://doc.easemob.com/product/demo.html)。 diff --git a/docs/uikit/chatuikit/react-native/chatuikit_overview.md b/docs/uikit/chatuikit/react-native/chatuikit_overview.md index 60705c642..4f584760b 100644 --- a/docs/uikit/chatuikit/react-native/chatuikit_overview.md +++ b/docs/uikit/chatuikit/react-native/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信聊天 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信聊天 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/react-native-chat-library) 和 [React Native Demo 源码](https://github.com/easemob/easemob-uikit-reactnative)。 diff --git a/docs/uikit/chatuikit/uniapp/chatuikit_overview.md b/docs/uikit/chatuikit/uniapp/chatuikit_overview.md index b032d7f1e..639e57df6 100644 --- a/docs/uikit/chatuikit/uniapp/chatuikit_overview.md +++ b/docs/uikit/chatuikit/uniapp/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信单群聊 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 UI 组件库,提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能,帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/easemob-uikit-uniapp)。 diff --git a/docs/uikit/chatuikit/web/chatuikit_overview.md b/docs/uikit/chatuikit/web/chatuikit_overview.md index f2f48d42a..473d5fd33 100644 --- a/docs/uikit/chatuikit/web/chatuikit_overview.md +++ b/docs/uikit/chatuikit/web/chatuikit_overview.md @@ -2,7 +2,7 @@ -环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 React UI 组件库。该组件库提供了聊天相关的组件,包括会话列表、聊天界面、联系人列表和群组设置等组件,组件内部集成了 IM SDK,可以帮助开发者不关心内部实现和数据管理就能根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 +环信单群聊 UIKit 是基于环信即时通讯 IM IM SDK 开发的一款即时通讯 React UI 组件库。该组件库提供了聊天相关的组件,包括会话列表、聊天界面、联系人列表和群组设置等组件,组件内部集成了 IM SDK,可以帮助开发者不关心内部实现和数据管理就能根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 你可以查看 [UIKit 源码](https://github.com/easemob/Easemob-UIKit-web/tree/main)。 From 8f80e35bcf854196748fc97830c26c3cf52ad715 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Sat, 11 Oct 2025 15:50:41 +0800 Subject: [PATCH 3/8] Modify Multi-Device Doc for All SDKs --- .../common/multidevice_device_count.png | Bin 3499 -> 158607 bytes .../common/multidevice_device_platform.png | Bin 6831 -> 155976 bytes docs/document/android/multi_device.md | 6 +++--- docs/document/flutter/multi_device.md | 6 +++--- docs/document/harmonyos/multi_device.md | 6 +++--- docs/document/ios/multi_device.md | 6 +++--- docs/document/react-native/multi_device.md | 8 ++++---- docs/document/unity/multi_device.md | 8 ++++---- docs/document/web/multi_device.md | 4 ++-- docs/document/windows/multi_device.md | 8 +++----- 10 files changed, 25 insertions(+), 27 deletions(-) diff --git a/docs/.vuepress/public/images/common/multidevice_device_count.png b/docs/.vuepress/public/images/common/multidevice_device_count.png index 970ae5f1200844ff00d6a83f3966c57a78efbddc..0ebd15fe816f82df160de5a7e865dfc334ec98cd 100644 GIT binary patch literal 158607 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 _@Upy^mi+t1@nulOy>6uKax^V;^{FHCflBFg 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 CIOLcB literal 3499 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 diff --git a/docs/.vuepress/public/images/common/multidevice_device_platform.png b/docs/.vuepress/public/images/common/multidevice_device_platform.png index d75d000282389cd2226986f326718e25c86d69b7..360e94fd078598a58eec11b9d31dc3a2e05be548 100644 GIT binary patch literal 155976 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
ZxD| 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 z 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

n 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 literal 6831 zcmZu#XEfa3)+PuBNkoh25)*=$qW3aH8AOQ^y^UU?lPJ-RK^WmT5=0vzLV~DCbi#~Y z5VN+H zIXF0&ot^FO?yjn;T3=s(@!~~aU*F@$j~g2s7Z(@D$Hxr~4O?4VBVsW!ju;RKbb5OF zI0D1O#I(D+tEZ(e=V05C~ymVTWLhr>Ey#D@=ZVzN)G!OZX3Z^(O%V z0g8%>7rOcgZSBd)$)IOR+G^r8H8m_o7#?x8@2jW6^4cI_d4xERoG{4E&23@pOvxDo zwZm9jTWiaU$T=n5vrckyaxyV7;o*fFm!E68CTwqSYirAKnqYR0E>>1n%*@P&hK7`t zl^Jvs^!4?HgoJLSoXTnc4Mg$q@ssEz5RdphUZ_X?g-884Yux&qH*aDRlgxY*>9wL# zzMkjh<;g3^fk1cQJfP&xL$;&?!`Ca~YTCjeP-KyKuBw3qhqNWj0DD)QH z9Uc&L6(7lN%@o1*~q>oL~-s> z-w(DmNy>nsBI&JW8ZTG#P3YscpI&d!)180fgl(_5H^ffVu8$#Em{6A6fO;1_5SE>2 z%gPQPZSq7BceOdI53{4#OOD0is8C&cqdpF!VvM;X(VA!mcffzEfs9QWQ$>mK!tj~B$+X0_=YUVMChx~$BtG4d%QWH0Gk){|d>(rX9qUMwY- zT^LgzY_$vZyi}E{)STZQbUvN=;>hWwUT)riC zT&40x&0MFvFF z9|#VCm12C`-Yoq(YJ7r{?{wI$4Gw+uskIzR?h#$yQt%B*aV}Gm+&uZ>OnkHh{*D1N z3LkaJRFBjh3ID64^ z+rwM%!-x14^znNNr8Ak5_wl_GY+ zNRH?)2`=Zdn~Y)4lU_baZbN+0>AAfu7~Gk0GxP~BvI)BP;4bkg z+kA8RP|+X&sW?iDsI%9Iapgjl;cjgs_#X z`W4!nnf$%zgfk4pvy=Jg!>lq+dmWc8z3`LQHa_+RyPYDlU(cg40H%VRhSxPQ+$*v@ z`VhH9{uo~2)pmc+KNLlfRie49aF6BzlR}@_+b6bOVoq>eBVL^juC0a@ zyYtf$L2~q6;-Em?-K4>9J(`KBiE+Jydis-=^SP!Zwv@zj15TE4sY2j=!rNr#Lpv;F zy`y8h&~`8AQdcex9m@Ikx)@DH2YKIHhSLvokh~|;4v^1*kSy+gM@Djdj1hXr{3n&P z>gz=6EAKwxH4H7{qPf`$@cpaxtSG;Hf+;`o#8#3IRlP#v=Sp%=xv|dyr>D5!RvHwC zhHY#xl5Rnp++D;Cle-r>JtT9Gq-bubJS4t);?gW8&CO-k(K$v7_;Vk)qW<4uvo_UR0W{+^u@J2C!dByIBMh^TRVjB?ABhUFh>PZ$atHmc4~p6DxijNo$!!+iE( zIvi6&`J3|!g#6u{2l6D^PKVt8QvwJ2NW;kt zg2<1?5XM1RoK1svIw32MCSE#jGD+wuLOeQ&0{gC-83z6-aevBH#js8qFb;-j<~DW58G_N(8x zx7xc4bhpzBYt$&Sr0dOV#sXl>1cg?0p|?Xa#er!S^X!!y@yGUc?- zS$(t-A}obu%$YU(Yv^Nq;`%r658A87uRYostNJ}^qfO*VN*^Z<^LdMc6ST4*Tc_9E z(X2708OBl$k7h;7#dYYOSZ1D>Jw)xA{qPz$B{4#K#zL5LY|<)#w%OYc#U#?0^$}rI z-WlS>9|Nu_Q(xiTJeHvsBk8ncjCFP%I3R7Z`2-NoV zlQa1?TPXaog-;dtk%m6zTtb0g$>+6X{iX|OxJcR9F9~9R&d7PtzQ(nfhuf}&xqF{sbG`%2^bN!CdMEA<<}!`-$CI|I z(*71;*Vlqenx2uF)hp^miSUok3a-SpOx^WJ)Q>nqPC0{S19m__VFZ*K^b=Jg{jTWUN_ zOp9n$VGrY2NB74*O;9_9*i5bEOFxrQ)=qMbTgO3bN%e{~OD>(&?y2V8jL3w}(V#Zu zM!;qhBcY_$WwjOkd4`M&?FT4@>lRpghCh07#0<|iJN_~YzuF~1{H5a+Cs->y;t+^- z073!j6Nb+3705Z1TqhLy6bxNxp6EcL!{5OaP;&it$5$u0(A~QL_ef_jGW9pq3iG!) z7n{6z?{~Q=v0eE_px47<>*r`kos5YIm#*H4ZcgDP0bgbL4#f*ns&1xRDMBFOjoe%- zMeBS^w~{Y!&n^3J+48d=!E<_~b_bYno1;lbC@jyrYvjIli|}`k+9?us^^BKfJ_94c$}U$gp%DG8MKHgNGI~qU zOXX9~r#j@}SA>464jt69pd6AZRBGjz?*I7DTWfov=iI*{!CVXCh06^QVxL)koM9Ux z@W$LM8echf>H8zs^q5M`d1*$>UGCj-3~U3~KGR1hiJ%8>)xaG+_s@HFXNFiphcW}o z=o=;;VX~b1(-!QAv3yum^_HL+nZd=ZYB1lv2khJPo(aq62G4ojCe=!0O4VB2laPP- zZo+mz5;R#+hf7~L9L%MtRIT9|QKFG1={U|7>Rhb3qw38?%N(Rf@{^|myg3Os1DxOV zSc>9q^qk2Gz-KV|vPIu;z^5 zYJMa>$L)xvEY0TFdxHd6&zT=&yH!SwLZlBA64(iCu<9 zqTE5Q7XBvI##`jEpI$)+6h^67Ar9*qO41!9#5UJ!CReNDmVDKSFnH^y$A3P8e@*u+ zNx8bn;0Byo0ja~_YT8Fj5H!cdxTF1Y@{^#1kU!vGf%P}yYHdXJ)^H@>SA8Yw39AGp z=l0zkHQ8oGGp{4z1~)Ml>RQ(Y6&)$@w-qE2}C z;fJ}k4UbheG6E1lf#zK9fT4L;pgaw*R8^QC!84A?R2r=uF$qeKPi~Wm(p$eL%z+ax6qF1~AH${b=zbvDLN8 zV3`Fj?kjv3kj=YociBKI!|J+U3NTYK{2EKg6fBP8>jLYeDpoGzv%47KWAB#4P1Ar8 zyC|b!!M0@=Sj4{WjxICRFQhz4Vd924ddOiST&A~4^!DsZc@9b#0DukqkQc3;>{D~E}3A=|M zmT^FJ3w@%hA=AN_m4wD^M>EI*pO3+m=uxiG0D%$fUBfgI{vShbf}jksK%6R4jSrvy zzdrpJx)#!WcK%b*=f4SWw4a_VtWu|lBEL`|kivhDI(67cG3TUegQUQ(UHSC0j7IWq zfsbkNSL#g)q{PSMVo2=dB8Z{GpKlR8bJBK@;_U z{{JvCRSNnO&-;m5Z2t<G2<5M%rH5xn)}+XnVOeY>-vW^^>t-ga@Ot)eb8h%y! z^NpZyo3R)*u@-OB!%_I>nVU%IOX;j4I;8LgP#PtyxVg zasnpd&{Ve<0-D#02)9Rzw7)U#Kp6u1j0+5b;Zv2_XRgZ;FjxBDR`9sF!ZSxJ zF*c~x(NV8(*j0%=2FSZpeH3T^6gQXEud8fCjd8YcMuKClghiQ!?W3bS;?cbx5?VeS z1#1fJk`MS)VEVe?nS3Is$vpnlmQ^m)h;h{jE7VZGId^&-ge$%~%ZQ)sOKGXu#vHky zSKc1jmFQ{I#g{TM@nkYwlNjv&-6BYfY@WEv;46VMXD%ki{g%a{a-8K#M;JXn9Jtv+CS^+Wuvx zrj{X^oHK7#gT}lIkyC|wHY@+V*rm^o7gC?sLd~=0pzE_C#}YblFzX=v@n_j%4O{Wl zoMyooRTce+4=o{fY{adn1z`x_)DM!UcUIAZbq-Y++a7CO{0?b;#ZKB@lpm?Y%0(r% zY*QdJ%LQ~{8l?xcGkInQ2SIcCD}QEJoxI>_4y3ut0cMkrH7=k2f1Rd4Ng#q`D+rBd@6&qBDqAbj6(OU_d z5A?IhtdpX%u;amN)qWj++iA|SoFxBeJ&1P*tmdX??kGkk1E~MH-{_SxL9J1Jce1Pu z6f@Y&77OY?QmdP@ZYI5E#v}b%%6`9Pb$)R#l%u!9$FLXTA#y)*V%GV3wtUH}54cH< zp+F8T^TW+TZi<%jGS=$j!@R<8rP9?k(rBRrkcH0W%s0@=K;V%=32Dh(bGjqH(%3+7 ziSVes=0#bNDE2d%QEmW^^KOh_M=;M0h>G;=K$rK*hjBQkc6|NKNwFENO9EYVBdu%h zu)&&ScI>3Bi+dtlb%blbOb4%Q2EJal%I5N8moM#zfL>YPB-^i$Hkk+83Tv0l@Xq`S z$?>Z#ah2iI!&SQ=*~?g@eEz`J1?6-cOUgU_#YIavR?+Mg`v-&>5dpJ;CWsZ1DP%!> zORbaBl;R}k<=2-2fk@Ml1a7dEL5fi0Pag3N8QIKW2$wE__Vs-xVN2TWtF6DJMXit= zuH&PPVC6)Xk)gF4eT6;GvsIdo3?5y=zn$PI&G9cPKZ)MsN)~_-)v`C7SG#z|V4oxQ z3qDdJ?~jnjN~|Q%(OS*7a}KWQ9{e^Pim(hcUd)XA?PGmOI|E?rV>FK<#qNlm1e8zl z(o@9a@j-uJ+d`wASvwGUd}`b0`i4^vq)h0vUR-%Ka51Qj(>wUBsrmNsQ7G}} zkzfz|h%4)WnAV@nw|M`d-WSouBO*=?=Hh-;BH1$Lto^S9lTap^vG6;+Z8#REc_O;X z2c>>QJ&0d=c)1b-2SB9Q@MMyrIHcw&eGr;uP?8u`ZEOjBN*PA)LcDMz?Wu{3A z+NZwteNQqDmwa9x2yPMPB{!z_K7ua5OdNareAhSrq5BH#ZAYTxByKVnbk}qQ|5cq; z66pE7GW3G#vj-KydJ3=P41leP6|=z(nqiUiDo%x2CB4`QOXkDT;)@FhEG zz1s&3pY?`hIx)Zf>{RO_y?^&Qg(4TWfzZLAt4kL#X0~lVmw&UBrcUG#jQ0!=#$!Zy zkP_~L)#>O4Kb)=ixuhuH^;^h0wAGo%6u;&JZZ{xX8ci6ngdqG|3)#|U)X-CBCM1ki z+Fn)cV2m;neABB?&x!UG$@WMACD82r$e}!fxbpZjQS>%!9!3F$SzoCOQJN@p;2=}x zy=>3S?7!A5%29+s&*t(r-dvG;mPx1e^i%(8%vY~9iP^3-&+X{Y$*!+- zQq@^ZTqYo{EE>~#8O5qzc_pI#N9!n9o1y!jVJ(x*WtZxj{)ZwL?AQ^@N^q1#%xN_N z*EVciO6|7-JTYqV*ic4Q6 zeGBeGG4*g-f%NsqL+V;F|73PQZBdbCA9lZp%Xw^**th%Xw@4-_2ZWmEYbVtX>c4LK zanrIxy|4ML2pt-TDihV8;<5n4?^z+W9vEP*+t4SQyd$f@x*DqFn{o?30NYFZnSFL| z`lV)$duTJ#gnuUPbIn8rO(yOC-2K06^V;+W+7<{snF)szw989npm%)G%1p3}a2@`G4 z;kRlo-{teBV!-SWSZcVmobHLR$hgxVV{6GG1g&g`NS9>U)sr~j7U;ydJfvW^e$~53 zd+QAVcqGao-a(&IYD>qE=u|r?dE%IzvM#Fz9oodQ2WqiuKIFt9 z;U|ER_byH4bo8^ek~F<)T17BkzE$AC_Ml^h7(>TsT^O$Kz9%nUsZSQ27@c|qKYdt0 zN%z`g($R~)W9@<~@~81WJB4s(N2`+fgK(JoROVD%h{u39eDz*my;!xL^Y{=fDK@o% zVWF~- 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -132,13 +132,13 @@ EMClient.getInstance().chatManager().sendMessage(message); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK 时,调用 `EMOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK 时,调用 `EMOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/flutter/multi_device.md b/docs/document/flutter/multi_device.md index 2f3a0449c..45830770c 100644 --- a/docs/document/flutter/multi_device.md +++ b/docs/document/flutter/multi_device.md @@ -11,7 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -120,13 +120,13 @@ EMClient.getInstance.addConnectionEventHandler( 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK 时,调用 `EMOptions#osType` 方法自定义设置登录设备的平台。确保该方法中的 `osType` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK 时,调用 `EMOptions#osType` 方法自定义设置登录设备的平台。确保该方法中的 `osType` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/harmonyos/multi_device.md b/docs/document/harmonyos/multi_device.md index 17ff3bf02..51114aa3a 100644 --- a/docs/document/harmonyos/multi_device.md +++ b/docs/document/harmonyos/multi_device.md @@ -10,7 +10,7 @@ - 好友和群组相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -110,13 +110,13 @@ ChatClient.getInstance().addConnectionListener({ 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK 时,调用 `ChatOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK 时,调用 `ChatOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/ios/multi_device.md b/docs/document/ios/multi_device.md index eb2bfd742..b274a9624 100644 --- a/docs/document/ios/multi_device.md +++ b/docs/document/ios/multi_device.md @@ -11,7 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -114,13 +114,13 @@ option.customDeviceName = @"XXX的iPad"; 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击**新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在 **多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK 时,调用 `initializeSDKWithOptions` 方法设置 `EMOptions#customOSType` 属性添加自定义平台。确保该属性的值与环信控制台的**新增自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK 时,调用 `initializeSDKWithOptions` 方法设置 `EMOptions#customOSType` 属性添加自定义平台。确保该属性的值与环信控制台的 **新增自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/react-native/multi_device.md b/docs/document/react-native/multi_device.md index a9860e9aa..b5033625b 100644 --- a/docs/document/react-native/multi_device.md +++ b/docs/document/react-native/multi_device.md @@ -11,7 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -139,13 +139,13 @@ ChatClient.getInstance() 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 -**设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 +**设备平台** 的取值范围为 [1,100],**设备数量** 的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK。确保该方法中的 `customOSType` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK。确保该方法中的 `customOSType` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/unity/multi_device.md b/docs/document/unity/multi_device.md index a33b97069..3a4c658d9 100644 --- a/docs/document/unity/multi_device.md +++ b/docs/document/unity/multi_device.md @@ -11,7 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -169,13 +169,13 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 -**设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 +**设备平台** 的取值范围为 [1,100],**设备数量** 的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -1. 初始化 SDK 时,利用 `Options#CustomOSType` 自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +1. 初始化 SDK 时,利用 `Options#CustomOSType` 自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 diff --git a/docs/document/web/multi_device.md b/docs/document/web/multi_device.md index 05f0ef99f..880007192 100644 --- a/docs/document/web/multi_device.md +++ b/docs/document/web/multi_device.md @@ -11,7 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -62,7 +62,7 @@ conn.getSelfIdsOnOtherPlatform().then((res) => { 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的 **功能配置 > 功能配置总览** 页面,点击 **基础功能** 页签,然后点击 **多端多设备在线** 对应的设置。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台** 的取值范围为 [1,100],**设备数量** 的取值范围为 [0,4]。 diff --git a/docs/document/windows/multi_device.md b/docs/document/windows/multi_device.md index 22fbab5e9..398f58b39 100644 --- a/docs/document/windows/multi_device.md +++ b/docs/document/windows/multi_device.md @@ -11,9 +11,7 @@ - 子区相关操作; - 会话相关操作。 -多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 - -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量: +多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量: ![img](/images/common/multidevice_device_count.png) @@ -171,13 +169,13 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台** 和 **设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 ![img](/images/common/multidevice_device_platform.png) -2. 初始化 SDK 时,调用 `Options#CustomOSType` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。 +2. 初始化 SDK 时,调用 `Options#CustomOSType` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。 :::tip 登录成功后才会将该设置发送到服务器。 From 392e542aa958bdf1aa0bbb3f9d5fbd70c2790f07 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Sat, 11 Oct 2025 16:59:52 +0800 Subject: [PATCH 4/8] Add CallKit 4.16.0 Release Notes --- docs/callkit/android/releasenote.md | 20 +++++++++++++++++++ docs/callkit/ios/releasenote.md | 13 ++++++++++++ .../chatuikit/android/chatfeature_message.md | 2 +- .../chatuikit/flutter/chatfeature_message.md | 2 +- .../chatuikit/ios/chatfeature_message.md | 2 +- .../react-native/chatfeature_message.md | 2 +- .../chatuikit/web/chatfeature_message.md | 2 +- 7 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 docs/callkit/android/releasenote.md create mode 100644 docs/callkit/ios/releasenote.md diff --git a/docs/callkit/android/releasenote.md b/docs/callkit/android/releasenote.md new file mode 100644 index 000000000..76379c8ca --- /dev/null +++ b/docs/callkit/android/releasenote.md @@ -0,0 +1,20 @@ +# Android CallKit 更新日志 + +## 版本 4.16.0 2025-08-29 + +从该版本开始,Android CallKit 源码使用 Kotlin 语言开发,代码迁移至 [新 repo](https://github.com/easemob/easemob-callkit-android),老版本不再维护。 + +该版本的 CallKit 主要变更如下: +1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。 +2. 采用 MVVM 框架设计抽离各个模块的代码,职责分离。 + 功能模块主要包括: + - `RtcManager`: 管理具体音视频 + - `SignalingManager`: 管理信令交互 + - `AudioController`: 管理铃声 + - `FloatWindow` 和 `IncomingCallTopWindow`: 管理悬浮窗 + - `CallKitCache`: 管理缓存 + - `CallKitNotifier`: 管理通知 +3. 合并信令,由原来三个地方合并为一处。解决了 Activity 被回收导致信令不通问题。 +4. 在应用集成了 FCM 推送的设备上,当应用进程被杀死时,支持 [使用 Telecom](telecom.html) 唤起设备,实现系统级丝滑呼叫体验。 +5. [群组通话的邀请界面](integration.html#步骤-5-发起通话) 改为 CallKit 内部实现,不再需要开发者自己实现。 +6. 移除 App Server 的依赖,直接由 CallKit 内部从 SDK 中获取 rtc appid、rtcToken、uid和userID映射关系等。 \ No newline at end of file diff --git a/docs/callkit/ios/releasenote.md b/docs/callkit/ios/releasenote.md new file mode 100644 index 000000000..365aac531 --- /dev/null +++ b/docs/callkit/ios/releasenote.md @@ -0,0 +1,13 @@ +# iOS CallKit 更新日志 + +## 版本 4.16.0 2025-08-29 + +从该版本开始,iOS CallKit 源码使用 Swift 语言开发,并且支持 iOS 15.0 及以上版本,代码迁移至 [新 repo](https://github.com/easemob/easemob-callkit-iOS)。老版本不再维护。 + +该版本的 CallKit 主要变更如下: +1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。 +2. 单人视频通话支持[画中画](picture_in_picture.html)。 +3. 被叫离线时,支持 [使用 LiveCommunicationKit 进行呼叫](livecommunicationkit.html)。 +4. 优化了 [群组通话的呼叫信令交互](signaling.html#群组通话信令交互流程)。 +5. [群组通话的邀请界面](integration.html#发起群组通话) 改为 UIKit 内部实现,不再需要开发者自己实现。 +6. 通话使用的声网 RTC App ID 及 Token 在 CallKit 内部通过 IM SDK 接口获取,不再依赖 App Server。 \ No newline at end of file diff --git a/docs/uikit/chatuikit/android/chatfeature_message.md b/docs/uikit/chatuikit/android/chatfeature_message.md index 45148bab4..c7f23ff03 100644 --- a/docs/uikit/chatuikit/android/chatfeature_message.md +++ b/docs/uikit/chatuikit/android/chatfeature_message.md @@ -311,7 +311,7 @@ class ChatThreadActivity:ChatUIKitThreadActivity() { #### 自定义输入状态指示 UI -本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/document/product/typing_indication.html)。 +本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/product/solution_common/typing_indication.html)。 用户需要监听透传消息回调处理导航相关 UI 显示效果。 diff --git a/docs/uikit/chatuikit/flutter/chatfeature_message.md b/docs/uikit/chatuikit/flutter/chatfeature_message.md index d0bf5da0a..e2fdd454b 100644 --- a/docs/uikit/chatuikit/flutter/chatfeature_message.md +++ b/docs/uikit/chatuikit/flutter/chatfeature_message.md @@ -223,7 +223,7 @@ ChatUIKitSettings.enablePinMsg = false; 输入状态指示功能指在单聊会话中实时显示会话的一方正在输入的状态,增强通讯互动的实时性。此功能有助于用户了解对方是否正在回复,从而优化沟通体验,提升对话流畅度。 -本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/document/product/typing_indication.html)。 +本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/product/solution_common/typing_indication.html)。 diff --git a/docs/uikit/chatuikit/ios/chatfeature_message.md b/docs/uikit/chatuikit/ios/chatfeature_message.md index a184080c0..07185f161 100644 --- a/docs/uikit/chatuikit/ios/chatfeature_message.md +++ b/docs/uikit/chatuikit/ios/chatfeature_message.md @@ -235,7 +235,7 @@ Appearance.chat.messageLongPressedActions.removeAll { $0.tag == "Pin" } #### 自定义输入状态指示 UI -本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/document/product/typing_indication.html)。 +本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/product/solution_common/typing_indication.html)。 用户需要监听透传消息回调处理导航相关 UI 显示效果。 diff --git a/docs/uikit/chatuikit/react-native/chatfeature_message.md b/docs/uikit/chatuikit/react-native/chatfeature_message.md index 158d84a5d..7f06876dd 100644 --- a/docs/uikit/chatuikit/react-native/chatfeature_message.md +++ b/docs/uikit/chatuikit/react-native/chatfeature_message.md @@ -205,7 +205,7 @@ export function App() { #### 自定义输入状态指示 UI -本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/document/product/typing_indication.html)。 +本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/product/solution_common/typing_indication.html)。 如果需要自定义正在输入组件样式,需要自定义聊天页面组件的导航栏组件,可以参考 `ConversationDetailNavigationBar` 组件。 diff --git a/docs/uikit/chatuikit/web/chatfeature_message.md b/docs/uikit/chatuikit/web/chatfeature_message.md index d1d5e8633..deea737a0 100644 --- a/docs/uikit/chatuikit/web/chatfeature_message.md +++ b/docs/uikit/chatuikit/web/chatfeature_message.md @@ -296,5 +296,5 @@ features.chat.messageInput.typing = false; #### 自定义 -本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/document/product/typing_indication.html)。 +本功能使用 SDK 的透传消息实现,详见 [SDK 相关文档](/product/solution_common/typing_indication.html)。 From e85359b28dc3a96ede8e366b5c59b4e1074ee109 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Sat, 11 Oct 2025 17:20:16 +0800 Subject: [PATCH 5/8] Add release note menu --- docs/.vuepress/sidebar/callkit.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/.vuepress/sidebar/callkit.ts b/docs/.vuepress/sidebar/callkit.ts index 5b81e3898..e1c32c286 100644 --- a/docs/.vuepress/sidebar/callkit.ts +++ b/docs/.vuepress/sidebar/callkit.ts @@ -56,6 +56,7 @@ const callKitSidebar = [ { text: "常见问题", link: "common_issue.html" }, ] }, + { text: "更新日志", link: "releasenote.html" }, { text: "设计指南", link: "design_guide.html" }, { text: "历史文档", link: "easecallkit.html" } ]; From faaad8c8802105881ec15198a34d9a5a5f22bb6a Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Mon, 13 Oct 2025 10:05:59 +0800 Subject: [PATCH 6/8] modify --- docs/callkit/android/releasenote.md | 2 +- docs/callkit/web/releasenote.md | 12 ++++++++++++ docs/document/android/error.md | 2 +- docs/document/harmonyos/error.md | 2 +- docs/document/ios/error.md | 2 +- docs/document/server-side/message_delete.md | 2 +- docs/document/server-side/push_result_statistics.md | 2 +- docs/document/unity/error.md | 2 +- docs/document/windows/error.md | 2 +- docs/product/aigc/aigc_rest_api.md | 2 +- docs/product/aigc/aigc_run_through_demo_server.md | 8 ++++---- docs/product/easemob_app_token.md | 12 ++++++------ docs/product/enable_and_configure_IM.md | 8 ++++---- .../chatroomuikit/android/roomuikit_quickstart.md | 2 +- .../chatroomuikit/flutter/roomuikit_quickstart.md | 2 +- docs/uikit/chatroomuikit/ios/roomuikit_quickstart.md | 2 +- .../react-native/roomuikit_config_item.md | 2 +- .../react-native/roomuikit_quickstart.md | 2 +- docs/uikit/chatuikit/ios/chatuikit_quickstart.md | 2 +- .../chatuikit/react-native/chatuikit_quickstart.md | 2 +- 20 files changed, 42 insertions(+), 30 deletions(-) create mode 100644 docs/callkit/web/releasenote.md diff --git a/docs/callkit/android/releasenote.md b/docs/callkit/android/releasenote.md index 76379c8ca..7d5bddc67 100644 --- a/docs/callkit/android/releasenote.md +++ b/docs/callkit/android/releasenote.md @@ -17,4 +17,4 @@ 3. 合并信令,由原来三个地方合并为一处。解决了 Activity 被回收导致信令不通问题。 4. 在应用集成了 FCM 推送的设备上,当应用进程被杀死时,支持 [使用 Telecom](telecom.html) 唤起设备,实现系统级丝滑呼叫体验。 5. [群组通话的邀请界面](integration.html#步骤-5-发起通话) 改为 CallKit 内部实现,不再需要开发者自己实现。 -6. 移除 App Server 的依赖,直接由 CallKit 内部从 SDK 中获取 rtc appid、rtcToken、uid和userID映射关系等。 \ No newline at end of file +6. 移除 App Server 的依赖,直接由 CallKit 内部从 SDK 中获取 RTC App ID、rtcToken、UID 和 userID 映射关系等。 \ No newline at end of file diff --git a/docs/callkit/web/releasenote.md b/docs/callkit/web/releasenote.md new file mode 100644 index 000000000..3a895012a --- /dev/null +++ b/docs/callkit/web/releasenote.md @@ -0,0 +1,12 @@ +# CallKit 更新日志 + +## 版本 2.0.1 2025-08-29 + +从该版本开始,CallKit 移到 `easemob-chat-uikit` 中,为 UIKit 的中的一个组件,代码迁移至 [新 repo](https://github.com/easemob/easemob-uikit-react),老版本不再维护。 + +该版本的 CallKit 主要变更如下: + +1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。 +2. 优化了群组通话的呼叫信令交互。 +3. [群组通话的邀请界面](integration.html#发起群组通话) 改为 UIKit 内部实现,不再需要开发者自己实现。 +4. 通话使用的声网 RTC App ID 及 Token 在 CallKit 内部通过 IM SDK 接口获取,不再依赖 App Server。 \ No newline at end of file diff --git a/docs/document/android/error.md b/docs/document/android/error.md index ee6e7eba0..6bce04efb 100644 --- a/docs/document/android/error.md +++ b/docs/document/android/error.md @@ -16,7 +16,7 @@ Android 中错误码的类为 [EMError](https://sdkdocs.easemob.com/apidoc/andro | 3 | DATABASE_ERROR | 数据库操作失败:打开本地数据库失败。 | 需要根据调用的 API 结合日志分析,如果使用 `EMConversation#updateMessage` 方法更新一条本地不存在的消息,可能返回该错误;在数据库未打开时,调用其他本地数据库操作,也可能返回该错误。| | 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括 [设置当前用户的属性](userprofile.html#设置当前用户的所有属性)、[获取用户的所有属性](userprofile.html#获取用户的所有属性) 和 [获取用户的指定属性](userprofile.html#获取用户的指定属性),超过调用频率限制时,会上报该错误。 | 检查调用的 API,若传入 `limit` 参数,可将该参数控制在限制内,如果是限流导致,可以在延后一段时间重新调用。 | | 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | 需在[环信控制台](https://console.easemob.com/user/login)对 IM 服务进行升级。 | -| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | +| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | | 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | 检查报错的 API 中传入的用户 ID 参数是否为空。| | 102 | INVALID_PASSWORD | 用户密码不正确:登录时提供的密码为空或不正确。 | 检查调用的 API 中传入的密码参数是否正确。 | | 103 | INVALID_URL | URL 不正确。 | 检查调用 API 时传入的参数是否正确。 | diff --git a/docs/document/harmonyos/error.md b/docs/document/harmonyos/error.md index 00d264e99..79f432f8c 100644 --- a/docs/document/harmonyos/error.md +++ b/docs/document/harmonyos/error.md @@ -17,7 +17,7 @@ HarmonyOS 中错误码的类为 `ChatError`。 | 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如以下场景会提示该错误:
- 创建的用户 ID 数量超过购买服务的限制时提示该错误。
- 用户属性相关 API 超过调用频率限制,包括[设置当前用户的属性、获取单个或多个用户的用户属性和获取指定用户的指定用户属性的接口](userprofile.html)。 | | 7 | PARTIAL_SUCCESS | 服务请求返回成功,但有一些错误,例如,设置多个参数,有一些设置成功,另一些失败。 | | 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | -| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | +| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | | 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | | 102 | INVALID_PASSWORD | 用户密码不正确:登录时提供的密码为空或不正确。 | | 104 | INVALID_TOKEN | 用户 token 不正确:登录时提供的 token 为空或不正确。 | diff --git a/docs/document/ios/error.md b/docs/document/ios/error.md index 2f1f5f7b8..9c404e5fc 100644 --- a/docs/document/ios/error.md +++ b/docs/document/ios/error.md @@ -18,7 +18,7 @@ iOS 的错误码只有当操作出错的时候才会有返回值,否则返回 | 3 | EMErrorDatabaseOperationFailed | 数据库操作失败:打开本地数据库失败。 | 需要根据调用的 API 结合日志分析,如果使用 `EMConversation#updateMessage` 方法更新一条本地不存在的消息,可能返回该错误;在数据库未打开时,调用其他本地数据库操作,也可能返回该错误。 | | 4 | EMErrorExceedServiceLimit | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括[设置当前用户的属性](userprofile.html#设置当前用户的所有属性)、[获取单个或多个用户的用户属性](userprofile.html#获取用户的所有属性)和[获取指定用户的指定用户属性](userprofile.html#获取用户的指定属性),超过调用频率限制时,会上报该错误。| 检查调用的 API,若传入 `limit` 参数,可将该参数控制在上限内,若是限流导致,可以在延后一段时间重新调用。 | | 8 | EMAppActiveNumbersReachLimitation | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | 需在[环信控制台](https://console.easemob.com/user/login)对 IM 服务进行升级。 | -| 100 | EMErrorInvalidAppkey | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | +| 100 | EMErrorInvalidAppkey | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | | 101 | EMErrorInvalidUsername | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | 检查报错API 中传入的用户 ID 参数是否为空。 | | 102 | EMErrorInvalidPassword | 用户密码不正确:登录时提供的密码为空或不正确。 | 检查调用的 API 中传的密码参数是否正确。 | | 103 | EMErrorInvalidURL | URL 不正确。 | 检查调用 API 时传入的参数是否正确。 | diff --git a/docs/document/server-side/message_delete.md b/docs/document/server-side/message_delete.md index d06a38a5d..b96e92ad0 100644 --- a/docs/document/server-side/message_delete.md +++ b/docs/document/server-side/message_delete.md @@ -231,7 +231,7 @@ curl -X DELETE 'https://XXXX/XXXX/XXXX/rest/message/roaming/group/user/XXXX?grou - 清空单个用户当前时间及之前的所有漫游消息。 - 单向删除消息: - - 调用该接口后,该用户的漫游消息会从服务器和本地清空,该用户无法从服务端拉取到漫游消息,而且该用户的所有会话也会被清除,也拉不到会话列表。不过, + - 调用该接口后,该用户的漫游消息会从服务器和本地清空,该用户无法从服务端拉取到漫游消息,而且该用户的所有会话也会被清除,也拉不到会话列表。 - 会话中的其他用户不受影响,仍然可以拉取与该用户的漫游消息和会话。 **调用频率上限**:100 次/秒/App Key diff --git a/docs/document/server-side/push_result_statistics.md b/docs/document/server-side/push_result_statistics.md index 20b7cb05f..47c325e70 100644 --- a/docs/document/server-side/push_result_statistics.md +++ b/docs/document/server-side/push_result_statistics.md @@ -7,7 +7,7 @@ 你可以通过以下方式查询离线推送的结果: - 在[环信控制台](https://console.easemob.com/user/login)上查看 IM 消息投递查询: - - 在 **应用列表** 中点击目标应用的 **操作** 栏中的 **管理** 按钮,进入 **应用详情** 页面。 + - 在 **应用列表** 中点击目标应用的 **操作** 栏中的 **管理** 按钮,进入 **应用概览** 页面。 - 选择 **即时通讯 > 实时查询 > IM消息投递查询**,查看推送结果记录,如下图所示: ![img](/images/server-side/message_delivery_query.png) diff --git a/docs/document/unity/error.md b/docs/document/unity/error.md index f302bd46b..ff44a3c4a 100644 --- a/docs/document/unity/error.md +++ b/docs/document/unity/error.md @@ -39,7 +39,7 @@ SDKClient.Instance.Login(username, passwd, | 3 | DATABASE_ERROR | 数据库操作失败:打开本地数据库失败。 | 需要根据调用的 API 结合日志分析,如果使用 `Conversation#UpdateMessage` 方法更新一条本地不存在的消息,可能返回该错误;在数据库未打开时,调用其他本地数据库操作,也可能返回该错误。 | | 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括[设置当前用户的属性](userprofile.html#设置当前用户的属性)和[获取单个或多个用户的用户属性](userprofile.html#获取用户属性),超过调用频率限制时,会上报该错误。 | 检查调用的 API,若传入 `limit` 参数,可将该参数控制在上限内,若是限流导致,可以在延后一段时间重新调用。 | | 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | 需在[环信控制台](https://console.easemob.com/user/login)对 IM 服务进行升级。 | -| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | +| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | | 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | 检查报错 API 中传入的用户 ID 参数是否为空。 | | 102 | INVALID_PASSWORD | 用户密码不正确:登录时提供的密码为空或不正确。 | 检查调用的 API 中传的密码参数是否正确。 | | 103 | INVALID_URL | URL 不正确。 | 检查调用 API 时传入的参数是否正确。 | diff --git a/docs/document/windows/error.md b/docs/document/windows/error.md index e59cf67ef..387dd2662 100644 --- a/docs/document/windows/error.md +++ b/docs/document/windows/error.md @@ -39,7 +39,7 @@ SDKClient.Instance.Login(username, passwd, | 3 | DATABASE_ERROR | 数据库操作失败:打开本地数据库失败。 | 需要根据调用的 API 结合日志分析,如果使用 `Conversation#UpdateMessage` 方法更新一条本地不存在的消息,可能返回该错误;在数据库未打开时,调用其他本地数据库操作,也可能返回该错误。 | | 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括[设置当前用户的属性](userprofile.html#设置当前用户的属性)和[获取单个或多个用户的用户属性](userprofile.html#获取用户属性),超过调用频率限制时,会上报该错误。 | 检查调用的 API,若传入 `limit` 参数,可将该参数控制在上限内,若是限流导致,可以在延后一段时间重新调用。 | | 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | 需在[环信控制台](https://console.easemob.com/user/login)对 IM 服务进行升级。 | -| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | +| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 | | 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | 检查报错API 中传入的用户 ID 参数是否为空。 | | 102 | INVALID_PASSWORD | 用户密码不正确:登录时提供的密码为空或不正确。 | 检查调用的 API 中传的密码参数是否正确。 | | 103 | INVALID_URL | URL 不正确。 | 检查调用 API 时传入的参数是否正确。 | diff --git a/docs/product/aigc/aigc_rest_api.md b/docs/product/aigc/aigc_rest_api.md index 821f53902..15684eb19 100644 --- a/docs/product/aigc/aigc_rest_api.md +++ b/docs/product/aigc/aigc_rest_api.md @@ -63,7 +63,7 @@ GET https://{host}/{org_name}/{app_name}/robot/rule?&page={page}&size={size} | `entities` | JSONArray | app 下的机器人详情。 | | - `id` | String | 机器人 ID。 | | - `name` | String | 机器人名称。 | -| - `appkey` | String | 应用的唯一标识,由 `Orgname` 和 `Appname` 组成,生成后不允许修改。在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看。 | +| - `appkey` | String | 应用的唯一标识,由 `Orgname` 和 `Appname` 组成,生成后不允许修改。在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看。 | | - `robotId` | String | robot ID。 | | - `robotAppId` | String | robot ID 对应的 robot app ID。 | | - `msgType` | String | 消息类型,目前固定值为 `txt`,即文本消息。 | diff --git a/docs/product/aigc/aigc_run_through_demo_server.md b/docs/product/aigc/aigc_run_through_demo_server.md index 8f9161aa4..5608b863c 100644 --- a/docs/product/aigc/aigc_run_through_demo_server.md +++ b/docs/product/aigc/aigc_run_through_demo_server.md @@ -41,7 +41,7 @@ src/main/resources/application.yml #### 2. 获取 app 信息 -选中创建的应用,点击**管理**,进入**应用详情**页面,获取 **App Key**、**ClientID** 及**ClientSecret**。 +选中创建的应用,点击**管理**,进入**应用概览**页面,获取 **App Key**、**ClientID** 及**ClientSecret**。 ```yaml logging: @@ -50,9 +50,9 @@ logging: server: port: 80 #修改启动端口,只能为数字(请确保该端口没有被占用) easemob: - appkey: {appkey} # 创建应用获取到的 App Key,可通过环信控制台的 “应用详情” 页面上的 “APPKEY” 字段获取。 - clientId:{clientId} # App 的 client_id,可通过环信控制台的 “应用详情” 页面上的 “Client ID” 字段获取。 - clientSecret:{clientSecret} # App 的 client_secret,可通过环信控制台的 “应用详情” 页面上的 “ClientSecret” 字段获取。 + appkey: {appkey} # 创建应用获取到的 App Key,可通过环信控制台的 “应用概览” 页面上的 “APPKEY” 字段获取。 + clientId:{clientId} # App 的 client_id,可通过环信控制台的 “应用概览” 页面上的 “Client ID” 字段获取。 + clientSecret:{clientSecret} # App 的 client_secret,可通过环信控制台的 “应用概览” 页面上的 “ClientSecret” 字段获取。 ``` ![img](/images/aigc/app_detail.png) diff --git a/docs/product/easemob_app_token.md b/docs/product/easemob_app_token.md index 2418dfea4..42cb7c7d5 100644 --- a/docs/product/easemob_app_token.md +++ b/docs/product/easemob_app_token.md @@ -40,8 +40,8 @@ POST https://{host}/{org_name}/{app_name}/token | 参数 | 类型 | 是否必需 | 描述 | | :-------------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `grant_type` | String | 是 | 授权方式。该参数设置为固定字符串 `client_credentials`,即客户端凭证模式。 | -| `client_id` | String | 是 | App 的 `client_id`,用于生成 app token 调用 REST API。详见 [环信控制台](https://console.easemob.com/user/login/)的`应用详情`页面。 | -| `client_secret` | String | 是 | App 的 `client_secret`,用于生成 app token 调用 REST API。详见 [环信控制台](https://console.easemob.com/user/login/)的`应用详情`页面。 | +| `client_id` | String | 是 | App 的 `client_id`,用于生成 app token 调用 REST API。详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面。 | +| `client_secret` | String | 是 | App 的 `client_secret`,用于生成 app token 调用 REST API。详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面。 | | `ttl` | Long | 否 | token 有效期,单位为秒。
- 若传入该参数,token 有效期以传入的值为准。
- 若不传该参数,以 [环信控制台](https://console.easemob.com/user/login/)的 **用户管理** 页面的 token 有效期的设置为准。
- 若设置为 `0`,则 token 永久有效。
注意:VIP 5 集群该参数单位为毫秒。| ### HTTP 响应 @@ -87,8 +87,8 @@ curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' - | HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | | :---------- | :-------- | :-------------- | :------------ | :----| -| 400 | illegal_argument | client_id must be provided. | 请求 body 中没有传 `client_id`。| 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用详情** 页面中 app key 对应的 **Client ID** 参数。 | -| 400 | illegal_argument | client_secret must be provided | 请求 body 中没有传 `client_secret`。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用详情** 页面中 app key 对应的 **ClientSecret** 参数。 | -| 400 | invalid_grant | client_id does not match | app key 对应的 `client_id` 与请求 body 中传入的 `client_id` 不匹配。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用详情** 页面中 app key 对应的 **Client ID** 参数,确保请求 body 中传入的与该参数一致。 | -| 400 | invalid_grant | client_secret does not match | app key 对应的 `client_secret` 与请求 body 中传入的 `client_secret` 不匹配。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用详情** 页面中 app key 对应的 **ClientSecret** 参数,确保请求 body 中传入的与该参数一致。 | +| 400 | illegal_argument | client_id must be provided. | 请求 body 中没有传 `client_id`。| 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面中 app key 对应的 **Client ID** 参数。 | +| 400 | illegal_argument | client_secret must be provided | 请求 body 中没有传 `client_secret`。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面中 app key 对应的 **Client Secret** 参数。 | +| 400 | invalid_grant | client_id does not match | app key 对应的 `client_id` 与请求 body 中传入的 `client_id` 不匹配。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面中 app key 对应的 **Client ID** 参数,确保请求 body 中传入的与该参数一致。 | +| 400 | invalid_grant | client_secret does not match | app key 对应的 `client_secret` 与请求 body 中传入的 `client_secret` 不匹配。 | 详见 [环信控制台](https://console.easemob.com/user/login/)的 **应用概览** 页面中 app key 对应的 **Client Secret** 参数,确保请求 body 中传入的与该参数一致。 | | 404 | organization_application_not_found | Could not find application for XXX/XXX from URI: XXX/XXX/users | App key 不存在。 | 检查 `orgName` 和 `appName` 是否正确或[创建应用](/product/console/app_create.html)。 | diff --git a/docs/product/enable_and_configure_IM.md b/docs/product/enable_and_configure_IM.md index 1e5fd3bf8..e69e81ee1 100644 --- a/docs/product/enable_and_configure_IM.md +++ b/docs/product/enable_and_configure_IM.md @@ -28,7 +28,7 @@ ## 购买服务 -1. 创建应用后,在 **应用列表** 中点击所创建应用的 **操作** 栏中的 **管理** 按钮,进入 **应用详情** 页面。 +1. 创建应用后,在 **应用列表** 中点击所创建应用的 **操作** 栏中的 **管理** 按钮,进入 **应用概览** 页面。 ![img](/images/product/app-setting.png) @@ -74,9 +74,9 @@ | 应用信息 | 描述 | 如何查看 | | :--------- | :----- | :------- | -| `Orgname` | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。该参数是 `APPKEY` 的一部分。 | 在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看。 | -| `Appname` | 你在[环信控制台](https://console.easemob.com/user/login)创建应用时填入的应用名称。该参数是 `AppKey` 的一部分。| 在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看。 | -| `APPKEY` | 应用的唯一标识,由 `Orgname` 和 `Appname` 组成,生成后不允许修改。 | 在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看。 | +| `Orgname` | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。该参数是 `APPKEY` 的一部分。 | 在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看。 | +| `Appname` | 你在[环信控制台](https://console.easemob.com/user/login)创建应用时填入的应用名称。该参数是 `AppKey` 的一部分。| 在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看。 | +| `APPKEY` | 应用的唯一标识,由 `Orgname` 和 `Appname` 组成,生成后不允许修改。 | 在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看。 | | 服务器域名(`host`) | RESTful API 请求域名。环信为应用提供的 REST API 和 WebSocket 的请求域名。 | 在[环信控制台](https://console.easemob.com/user/login)的 **服务概览** 页面查看。 | | 数据中心 | 环信 IM 提供的分布在全球的多个数据中心:
- 国内数据中心:北京 1 区和北京 Vip6 区
- 海外数据中心:新加坡 1 区、 法兰克福(法国)和弗吉尼亚(美国) | 在[环信控制台](https://console.easemob.com/user/login)的 **服务概览** 页面查看。 | diff --git a/docs/uikit/chatroomuikit/android/roomuikit_quickstart.md b/docs/uikit/chatroomuikit/android/roomuikit_quickstart.md index c973518c1..a220c0992 100644 --- a/docs/uikit/chatroomuikit/android/roomuikit_quickstart.md +++ b/docs/uikit/chatroomuikit/android/roomuikit_quickstart.md @@ -41,7 +41,7 @@ dependencies { 你可以在应用加载时或使用 ChatroomUIKit 之前对其进行初始化。 -初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用详情**页面查看 App Key。 +初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用概览**页面查看 App Key。 ```kotlin // 初始化 ChatroomUIKit diff --git a/docs/uikit/chatroomuikit/flutter/roomuikit_quickstart.md b/docs/uikit/chatroomuikit/flutter/roomuikit_quickstart.md index f9bd98616..7dc274509 100644 --- a/docs/uikit/chatroomuikit/flutter/roomuikit_quickstart.md +++ b/docs/uikit/chatroomuikit/flutter/roomuikit_quickstart.md @@ -34,7 +34,7 @@ flutter pub get add chatroom_uikit 你可以在应用加载时或使用 `chatroom_uikit` 之前对其进行初始化。 -初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用详情**页面查看 App Key。 +初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用概览**页面查看 App Key。 ```dart void main() async { diff --git a/docs/uikit/chatroomuikit/ios/roomuikit_quickstart.md b/docs/uikit/chatroomuikit/ios/roomuikit_quickstart.md index ee7023df6..2e52cfa50 100644 --- a/docs/uikit/chatroomuikit/ios/roomuikit_quickstart.md +++ b/docs/uikit/chatroomuikit/ios/roomuikit_quickstart.md @@ -25,7 +25,7 @@ 你可以在应用加载时或使用 ChatroomUIKit 之前对其进行初始化。 -初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用详情**页面查看 App Key。 +初始化时,需传入 App Key。你可以在[环信控制台](https://console.easemob.com/user/login)的**应用概览**页面查看 App Key。 ```swift import ChatroomUIKit diff --git a/docs/uikit/chatroomuikit/react-native/roomuikit_config_item.md b/docs/uikit/chatroomuikit/react-native/roomuikit_config_item.md index e3979e438..7eea1f9fe 100644 --- a/docs/uikit/chatroomuikit/react-native/roomuikit_config_item.md +++ b/docs/uikit/chatroomuikit/react-native/roomuikit_config_item.md @@ -132,7 +132,7 @@ export type RoomOption = { | 参数 | 是否必需 | 描述 | | :----------- | :----- | :--------------------- | -| `appKey` | 是 | 你在环信控制台创建应用时填入的应用名称。该参数是 App Key 的一部分。可以在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看。 | +| `appKey` | 是 | 你在环信控制台创建应用时填入的应用名称。该参数是 App Key 的一部分。可以在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看。 | | `isDevMode` | 否 | 如果设置为 `true`,则激活日志打印等工具。 | | `language` | 否 | 设置当前的语言,若未设置,则获取系统当前的语言作为默认值。 | | `languageBuiltInFactory` | 否 | 若未设置则使用内置的语言资源。通常可以修改内置的 UI 内容。 | diff --git a/docs/uikit/chatroomuikit/react-native/roomuikit_quickstart.md b/docs/uikit/chatroomuikit/react-native/roomuikit_quickstart.md index ecd22c3ed..1c9a331b3 100644 --- a/docs/uikit/chatroomuikit/react-native/roomuikit_quickstart.md +++ b/docs/uikit/chatroomuikit/react-native/roomuikit_quickstart.md @@ -252,7 +252,7 @@ export default App; 在 [环信控制台](https://console.easemob.com/) 上获取以下信息,然后设置配置选项。 -- 获取 App Key。详见 [查看应用详情文档](/product/console/app_manage.html#查看应用信息) +- 获取 App Key。详见 [查看应用概览文档](/product/console/app_manage.html#查看应用信息) - 创建用户,获取用户 ID 和 token。详见 [创建用户文档](/product/console/operation_user.html#创建用户)。 - 获取聊天室 ID。详见 [创建聊天室文档](/product/console/operation_chatroom.html#创建聊天室)。 diff --git a/docs/uikit/chatuikit/ios/chatuikit_quickstart.md b/docs/uikit/chatuikit/ios/chatuikit_quickstart.md index 90d7142b1..d2ccbcb2e 100644 --- a/docs/uikit/chatuikit/ios/chatuikit_quickstart.md +++ b/docs/uikit/chatuikit/ios/chatuikit_quickstart.md @@ -29,7 +29,7 @@ 你可以在应用加载时或使用 EaseChatUIKit 之前对其进行初始化。 -初始化时,需传入 App Key。你可以在 [环信控制台](https://console.easemob.com/user/login) 的 **应用详情** 页面查看 App Key。 +初始化时,需传入 App Key。你可以在 [环信控制台](https://console.easemob.com/user/login) 的 **应用概览** 页面查看 App Key。 ``` import EaseChatUIKit diff --git a/docs/uikit/chatuikit/react-native/chatuikit_quickstart.md b/docs/uikit/chatuikit/react-native/chatuikit_quickstart.md index a5f2a1795..672b3f779 100644 --- a/docs/uikit/chatuikit/react-native/chatuikit_quickstart.md +++ b/docs/uikit/chatuikit/react-native/chatuikit_quickstart.md @@ -216,7 +216,7 @@ export default function App(): React.JSX.Element { 在 [环信控制台](https://console.easemob.com/) 获取 App Key 和用户 ID 和 token,然后填入配置选项: -- 在 **应用详情** 页面 [获取 App Key](/product/console/app_manage.html#查看应用信息)。 +- 在 **应用概览** 页面 [获取 App Key](/product/console/app_manage.html#查看应用信息)。 - 创建用户,获取用户 ID 和用户 token。详见 [创建用户文档](/product/console/operation_user.html#创建用户)。 ```tsx From 46a1d8bce23a75ea63c72f442b4b0fed03ce7f11 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Mon, 13 Oct 2025 10:19:46 +0800 Subject: [PATCH 7/8] modify --- docs/document/server-side/keyword_add.md | 4 ++-- docs/document/server-side/keyword_list_create.md | 4 ++-- docs/product/moderation/moderation_keyword.md | 2 +- docs/product/pricing.md | 2 +- docs/product/pricing_policy.md | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/document/server-side/keyword_add.md b/docs/document/server-side/keyword_add.md index afb62e6c0..0c944a650 100644 --- a/docs/document/server-side/keyword_add.md +++ b/docs/document/server-side/keyword_add.md @@ -3,7 +3,7 @@ ## 功能说明 - 添加关键词。 -- 每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 100,000 个词条。 +- 每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 1,000,000 个词条。 **调用频率上限**:100 次/秒/App Key @@ -164,7 +164,7 @@ curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list/{list_id}/word/batch' | HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | | :----------- | :--- | :------------- | :----------- | :----------- | | 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | -| 400 | Bad Request | The text count exceeds the maximum number | 关键词数量超限。 | 减少关键词数量。每个名单最多可添加 10,000 个关键词,每个应用最多可配置 100,000 个词条。| +| 400 | Bad Request | The text count exceeds the maximum number | 关键词数量超限。 | 减少关键词数量。每个名单最多可添加 10,000 个关键词,每个应用最多可配置 1,000,000 个词条。| | 400 | Bad Request | request data is empty | 新增名单为空。 | 添加关键词名单。 | | 400 | Bad Request | textList data is empty | 不存在关键词名单。 | 先创建名单,再操作。 | | 400 | Bad Request | The textList already contains the text | 关键词重复。 | 去除重复关键词。 | diff --git a/docs/document/server-side/keyword_list_create.md b/docs/document/server-side/keyword_list_create.md index abf7bf2e4..b3897f6fc 100644 --- a/docs/document/server-side/keyword_list_create.md +++ b/docs/document/server-side/keyword_list_create.md @@ -5,7 +5,7 @@ - 创建关键词名单。 - 关键词名单为增值服务,在 [文本审核规则](/product/moderation/moderation_rule_config.html#设置审核规则) 中应用。使用前,你需要开通 [文本审核服务](/product/moderation/moderation_enable.html), 配置 [文本审核规则](/product/moderation/moderation_rule_config.html#设置审核规则),并开通 [关键词名单服务](/product/moderation/moderation_keyword#使用关键词审核)。 - 创建的名单会在环信控制台的 **关键词名单** 列表(**即时通讯** > **内容审核** > **文本审核** > **关键词名单**)中展示。你可以在环信控制台编辑、删除名单或进行添加/删除关键词等操作。 -- 每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 100,000 个词条。 +- 每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 1,000,000 个词条。 **调用频率上限**:100 次/秒/App Key @@ -176,7 +176,7 @@ curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list' \ | 400 | Bad Request | The text count exceeds the maximum number | 关键词数量超过上限。 | 减少关键词数量。 | | 400 | Bad Request | The textList already exists | 关键词名单名称已存在。 | 修改关键词名单名称。 | | 400 | Bad Request | moderation org data is empty | 你未开通内容审核服务。 | 开通内容审核服务。 | -| 400 | Bad Request | the number of words exceeds the limit | 应用下面的关键词总数超过上限。每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 100,000 个词条。| 减少关键词数量。 | +| 400 | Bad Request | the number of words exceeds the limit | 应用下面的关键词总数超过上限。每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 1,000,000 个词条。| 减少关键词数量。 | | 400 | MODERATION_002 | "request param is empty | 若未设置必填参数,例如 `name` 或 `scope`,会提示该错误。 | 请传入必填参数。 | 关于其他错误,你可以参考 [错误码页面](error.html) 了解可能的原因。 \ No newline at end of file diff --git a/docs/product/moderation/moderation_keyword.md b/docs/product/moderation/moderation_keyword.md index 0d365805e..053e1fc18 100644 --- a/docs/product/moderation/moderation_keyword.md +++ b/docs/product/moderation/moderation_keyword.md @@ -21,7 +21,7 @@ 2. 选择页面上方的 **应用管理**。在弹出的应用列表页面,单击你的应用的 **操作** 栏中的 **管理**。 3. 在左侧导航栏,选择 **功能配置 > 增值服务 > 内容审核 > 文本审核 > 关键词名单**。 - 关键词名单包含白名单和黑名单,即 **命中处置** 参数为 **通过** 时为白名单,设置为 **拦截** 和 `替换为 ***` 时为黑名单。每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 100,000 个词条。添加的关键词在 1 分钟后生效。 + 关键词名单包含白名单和黑名单,即 **命中处置** 参数为 **通过** 时为白名单,设置为 **拦截** 和 `替换为 ***` 时为黑名单。每个应用最多可配置 100 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 1,000,000 个词条。添加的关键词在 1 分钟后生效。 4. 在 **黑/白名单管理** 页面,单击 **创建黑/白名单**,配置名单参数。 diff --git a/docs/product/pricing.md b/docs/product/pricing.md index 732e77426..decb108f8 100644 --- a/docs/product/pricing.md +++ b/docs/product/pricing.md @@ -86,7 +86,7 @@ 以下为计费示例: -某用户订阅的即时通讯的套餐包为专业版,应用的当月最高 DAU 为 15,000,峰值群组和聊天室数为 110,000 个(免费额度为 100,000), 当月即时通讯服务费用为 1299 + 1000 + 100 = 2399 元。 +某用户订阅的即时通讯的套餐包为专业版,应用的当月最高 DAU 为 15,000,峰值群组和聊天室数为 100,000 个(免费额度为 100,000), 当月即时通讯服务费用为 1299 + 1000 + 100 = 2399 元。 ### 增值服务费用 diff --git a/docs/product/pricing_policy.md b/docs/product/pricing_policy.md index 2f0923df7..2d9719a61 100644 --- a/docs/product/pricing_policy.md +++ b/docs/product/pricing_policy.md @@ -86,7 +86,7 @@ 以下为计费示例: -某用户订阅的即时通讯的套餐包为专业版,应用的当月最高 DAU 为 15,000,峰值群组和聊天室数为 110,000 个(免费额度为 100,000), 当月即时通讯服务费用为 1299 + 1000 + 100 = 2399 元。 +某用户订阅的即时通讯的套餐包为专业版,应用的当月最高 DAU 为 15,000,峰值群组和聊天室数为 100,000 个(免费额度为 100,000), 当月即时通讯服务费用为 1299 + 1000 + 100 = 2399 元。 ### 增值服务费用 From 3a6a4ab383d437c15da6fd4519a1e025c1780531 Mon Sep 17 00:00:00 2001 From: haoxiuwen Date: Mon, 13 Oct 2025 10:40:59 +0800 Subject: [PATCH 8/8] modify --- docs/document/android/message_recall.md | 2 +- docs/document/android/message_receipt.md | 2 +- docs/document/flutter/message_recall.md | 2 +- docs/document/flutter/message_receipt.md | 2 +- docs/document/harmonyos/message_recall.md | 2 +- docs/document/harmonyos/message_receipt.md | 2 +- docs/document/ios/message_recall.md | 2 +- docs/document/ios/message_receipt.md | 2 +- docs/document/react-native/message_recall.md | 2 +- docs/document/react-native/message_receipt.md | 2 +- docs/document/server-side/message_recall.md | 2 +- docs/document/unity/message_recall.md | 2 +- docs/document/unity/message_receipt.md | 2 +- docs/document/web/message_recall.md | 2 +- docs/document/web/message_receipt.md | 2 +- docs/document/windows/message_recall.md | 2 +- docs/document/windows/message_receipt.md | 2 +- docs/product/limitation.md | 4 ++-- docs/product/moderation/moderation_record_callback.md | 2 +- docs/product/product_function.md | 8 ++++---- 20 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/document/android/message_recall.md b/docs/document/android/message_recall.md index 4a8f82e61..92d288352 100644 --- a/docs/document/android/message_recall.md +++ b/docs/document/android/message_recall.md @@ -7,7 +7,7 @@ - 对于单聊会话,只支持发送方撤回发送成功的消息。若消息过期,撤回失败。 - 对于群组/聊天室会话,普通成员只能撤回自己发送的消息,若消息过期,撤回失败。群主/聊天室所有者和管理员可撤回其他用户发送的消息,即使消息过期也能撤回。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/android/message_receipt.md b/docs/document/android/message_receipt.md index c43f473ac..1b08408d2 100644 --- a/docs/document/android/message_receipt.md +++ b/docs/document/android/message_receipt.md @@ -170,7 +170,7 @@ EMClient.getInstance().chatManager().removeMessageListener(msgListener); | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/flutter/message_recall.md b/docs/document/flutter/message_recall.md index 53b071f3a..fd4a12ab9 100644 --- a/docs/document/flutter/message_recall.md +++ b/docs/document/flutter/message_recall.md @@ -4,7 +4,7 @@ 发送方可以撤回一条发送成功的消息,包括已经发送的历史消息,离线消息或漫游消息。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/flutter/message_receipt.md b/docs/document/flutter/message_receipt.md index 1d48cd5e2..1bad78415 100644 --- a/docs/document/flutter/message_receipt.md +++ b/docs/document/flutter/message_receipt.md @@ -128,7 +128,7 @@ EMClient.getInstance.chatManager.addEventHandler( | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/harmonyos/message_recall.md b/docs/document/harmonyos/message_recall.md index b51a0d286..bc235a89e 100644 --- a/docs/document/harmonyos/message_recall.md +++ b/docs/document/harmonyos/message_recall.md @@ -7,7 +7,7 @@ - 对于单聊会话,只支持发送方撤回发送成功的消息。若消息过期,撤回失败。 - 对于群组/聊天室会话,普通成员只能撤回自己发送的消息,若消息过期,撤回失败。群主/聊天室所有者和管理员可撤回其他用户发送的消息,即使消息过期也能撤回。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/harmonyos/message_receipt.md b/docs/document/harmonyos/message_receipt.md index 0f37a3c2f..b5c87ce42 100644 --- a/docs/document/harmonyos/message_receipt.md +++ b/docs/document/harmonyos/message_receipt.md @@ -142,7 +142,7 @@ ChatClient.getInstance().chatManager()?.addMessageListener(msgListener); | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/ios/message_recall.md b/docs/document/ios/message_recall.md index 6dff31daf..d7bc572c4 100644 --- a/docs/document/ios/message_recall.md +++ b/docs/document/ios/message_recall.md @@ -7,7 +7,7 @@ - 对于单聊会话,只支持发送方撤回发送成功的消息。若消息过期,撤回失败。 - 对于群组/聊天室会话,普通成员只能撤回自己发送的消息,若消息过期,撤回失败。群主/聊天室所有者和管理员可撤回其他用户发送的消息,即使消息过期也能撤回。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/ios/message_receipt.md b/docs/document/ios/message_receipt.md index e3385aed0..e555793c1 100644 --- a/docs/document/ios/message_receipt.md +++ b/docs/document/ios/message_receipt.md @@ -160,7 +160,7 @@ EMChatManagerDelegate | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/react-native/message_recall.md b/docs/document/react-native/message_recall.md index 5c665ae89..1dc127285 100644 --- a/docs/document/react-native/message_recall.md +++ b/docs/document/react-native/message_recall.md @@ -4,7 +4,7 @@ 发送方可以撤回一条发送成功的消息,包括已经发送的历史消息,离线消息或漫游消息。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/react-native/message_receipt.md b/docs/document/react-native/message_receipt.md index 1fe9e042a..2f0bbc713 100644 --- a/docs/document/react-native/message_receipt.md +++ b/docs/document/react-native/message_receipt.md @@ -133,7 +133,7 @@ ChatClient.getInstance().chatManager.addMessageListener({ | 使用限制 | 默认 | 描述 | | :------------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/server-side/message_recall.md b/docs/document/server-side/message_recall.md index de077666d..562025dc6 100644 --- a/docs/document/server-side/message_recall.md +++ b/docs/document/server-side/message_recall.md @@ -8,7 +8,7 @@ - 调用该 API 后,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会撤销。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 - 支持设置是否将单聊消息撤回同步给消息发送方的所有在线设备(`sync_device` 参数)。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 [环信控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 [环信控制台](https://console.easemob.com/user/login)的**功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 支持强制撤回消息,即撤回已过期的消息。 - 撤回消息会触发发送后回调,请参见 [回调事件文档](callback_message_recall.html)。 - 撤回消息前,需要通过调用 [获取历史消息记录 API](message_historical.html) 或 [消息回调](callback_overview.html) 获取要撤回的消息 ID。 diff --git a/docs/document/unity/message_recall.md b/docs/document/unity/message_recall.md index 0fe8299ea..8bd05c818 100644 --- a/docs/document/unity/message_recall.md +++ b/docs/document/unity/message_recall.md @@ -4,7 +4,7 @@ 发送方可以撤回一条发送成功的消息,包括已经发送的历史消息,离线消息或漫游消息。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/unity/message_receipt.md b/docs/document/unity/message_receipt.md index b2425c7c5..b38712723 100644 --- a/docs/document/unity/message_receipt.md +++ b/docs/document/unity/message_receipt.md @@ -195,7 +195,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(myDelegate); | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/web/message_recall.md b/docs/document/web/message_recall.md index 492166a35..73f121550 100644 --- a/docs/document/web/message_recall.md +++ b/docs/document/web/message_recall.md @@ -7,7 +7,7 @@ - 对于单聊会话,只支持发送方撤回发送成功的消息。若消息过期,撤回失败。 - 对于群组/聊天室会话,普通群成员只能撤回自己发送的消息,若消息过期,撤回失败。群主/聊天室所有者和管理员可撤回其他用户发送的消息,即使消息过期也能撤回。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/web/message_receipt.md b/docs/document/web/message_receipt.md index 35a8eded8..7a107c689 100644 --- a/docs/document/web/message_receipt.md +++ b/docs/document/web/message_receipt.md @@ -129,7 +129,7 @@ conn.addEventHandler("customEvent", { | 使用限制 | 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。若使用前未开通,SDK 提示 503 "group ack not open" 错误。| +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。若使用前未开通,SDK 提示 503 "group ack not open" 错误。| | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改,此时普通成员发送消息要求已读回执时,SDK 会提示 "group ack msg permission denied" 错误。| | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天。你可以联系商务提上该上限。若已读回执的发送时间超过该限制,服务器不记录阅读该条消息的群组成员,也不会发送已读回执,SDK 会提示 "group ack msg not found" 错误。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/document/windows/message_recall.md b/docs/document/windows/message_recall.md index 0fe8299ea..8bd05c818 100644 --- a/docs/document/windows/message_recall.md +++ b/docs/document/windows/message_recall.md @@ -4,7 +4,7 @@ 发送方可以撤回一条发送成功的消息,包括已经发送的历史消息,离线消息或漫游消息。 - **除了透传消息,其他各类型的消息都支持撤回**。 -- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。 - 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。 - 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。 diff --git a/docs/document/windows/message_receipt.md b/docs/document/windows/message_receipt.md index cc2db401a..83a37fd6d 100644 --- a/docs/document/windows/message_receipt.md +++ b/docs/document/windows/message_receipt.md @@ -195,7 +195,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(myDelegate); | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/product/limitation.md b/docs/product/limitation.md index 3ba1cf542..83067510e 100644 --- a/docs/product/limitation.md +++ b/docs/product/limitation.md @@ -40,7 +40,7 @@ ### 消息撤回 -默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能**页面设置消息撤回时长,该时长不超过 7 天。 +默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的**功能配置** > **基础功能** > **消息**页面设置消息撤回时长,该时长不超过 7 天。 :::tip 除了透传消息,其他各类型的消息都支持撤回。 @@ -55,7 +55,7 @@ | 使用限制| 默认 | 描述 | | :--------- | :----- | :------- | -| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | +| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 | | 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 | | 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 | | 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 | diff --git a/docs/product/moderation/moderation_record_callback.md b/docs/product/moderation/moderation_record_callback.md index 0cc967715..267434702 100644 --- a/docs/product/moderation/moderation_record_callback.md +++ b/docs/product/moderation/moderation_record_callback.md @@ -5,7 +5,7 @@ 审核记录支持回调,具体操作步骤如下: 1. 登录 [环信控制台](https://console.easemob.com/user/login)。 -2. 选择页面上方的 **应用管理**。在弹出的应用列表页面,单击你的应用的 **操作** 栏中的 **管理**。 +2. 选择 **应用管理**。在弹出的应用列表页面,单击你的应用的 **操作** 栏中的 **管理**。 ![img](/images/console/app_mgmt_list.png) diff --git a/docs/product/product_function.md b/docs/product/product_function.md index 24cf480f9..2ec8fa5d2 100644 --- a/docs/product/product_function.md +++ b/docs/product/product_function.md @@ -43,7 +43,7 @@ | 单平台登录 | Android、iPhone、iPad、HarmonyOS、Windows、Mac、Web 仅可有1种平台在线。 | | 多平台登录 | 每端默认最多支持 4 个设备同时在线。 | -使用多端登录前,你需要在[环信控制台](https://console.easemob.com/user/login)的 **即时通讯** > **功能配置** > **功能配置总览** > **基础功能** 页面上查找 **多端多设备在线**,开启该功能。此外,可以在 **基础功能**页签下点击 **多端多设备在线** 操作栏中的 **设置**,在弹出的对话框中设置各端设备的数量。 +使用多端登录前,你需要在 [环信控制台](https://console.easemob.com/user/login) 的 **功能配置** > **基础功能** > **用户** 页面上查找 **多端多设备**,开启该功能。开通该功能后,点击 **设置**,在弹出的对话框中设置各端设备的数量。 ## 消息类型 @@ -70,7 +70,7 @@ | :------------- | :---------------------- | | 发送和接收消息 | 发送和接收各类消息,包括文本、图片、音频、视频、文件消息、位置消息、命令消息、自定义消息以及合并消息。 | | 本地存储 | 接收的消息存储在本地。 | -| 历史消息 | 环信服务器可存储消息。消息存储时间与你的产品套餐包相关,详见[产品价格](https://www.easemob.com/pricing/im)。 | +| 历史消息 | 环信服务器可存储消息。消息存储时间与你的产品套餐包相关,详见 [产品价格](https://www.easemob.com/pricing/im)。 | | 离线消息推送 |
- 用户离线时,可向消息接收方发送推送通知。
- 支持离线消息存储,默认为 7 天。 | | 多端同步 | 多端多设备消息同步,同时收到消息。 | | 本地搜索 | 按照关键字搜索本地会话中的各类消息。 | @@ -112,7 +112,7 @@ ## 用户关系 -环信即时通讯 IM 默认支持陌生人之间发送单聊消息,即无需添加好友即可聊天。若仅允许好友之间发送单聊消息,你需要在[环信控制台](https://console.easemob.com/user/login)[开启好友关系检查](/product/console/basic_user.html#好友关系检查)。 +环信即时通讯 IM 默认支持陌生人之间发送单聊消息,即无需添加好友即可聊天。若仅允许好友之间发送单聊消息,你需要在 [环信控制台](https://console.easemob.com/user/login)[开启好友关系检查](/product/console/basic_user.html#好友关系检查)。 | 功能 | 描述 | | :-------------- | :----- | @@ -163,7 +163,7 @@ ## 环信控制台 -你可以在[环信控制台](https://console.easemob.com/user/login)对你的应用进行配置和管理。 +你可以在 [环信控制台](https://console.easemob.com/user/login) 对你的应用进行配置和管理。 | 功能 | 描述 | | :------ | :----------- |