From 69c1c60421c60eeed93df29292035866c9556690 Mon Sep 17 00:00:00 2001 From: Yleiting <994812516@qq.com> Date: Thu, 21 Sep 2023 18:25:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A7=81=E6=9C=89=E5=8C=96?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.vuepress/components/PlatformSwitch.vue | 21 +- docs/.vuepress/public/icon-linux-hover.svg | 1 + docs/.vuepress/public/icon-linux.svg | 1 + .../public/si-glyph-electron (1).svg | 1 + docs/.vuepress/public/si-glyph-electron.svg | 1 + docs/.vuepress/sidebar/document_v2.ts | 97 +- docs/.vuepress/sidebar/push.ts | 6 +- docs/document/v2/android/demo.md | 25 +- docs/document/v2/android/easecallkit.md | 10 +- docs/document/v2/android/easeimkit.md | 47 +- docs/document/v2/android/group_attributes.md | 3 +- docs/document/v2/android/group_manage.md | 3 +- docs/document/v2/android/group_members.md | 5 +- docs/document/v2/android/group_overview.md | 6 +- docs/document/v2/android/message_manage.md | 4 +- docs/document/v2/android/message_modify.md | 2 +- docs/document/v2/android/message_overview.md | 2 +- docs/document/v2/android/message_receipt.md | 10 +- docs/document/v2/android/message_retrieve.md | 12 +- .../v2/android/message_send_receive.md | 4 +- docs/document/v2/android/moderation.md | 4 +- docs/document/v2/android/multi_device.md | 10 +- docs/document/v2/android/overview.md | 8 +- docs/document/v2/android/presence.md | 6 +- docs/document/v2/android/push.md | 20 +- docs/document/v2/android/quickstart.md | 6 +- docs/document/v2/android/reaction.md | 5 +- docs/document/v2/android/releasenote.md | 14 +- docs/document/v2/android/room_attributes.md | 5 +- docs/document/v2/android/room_manage.md | 9 +- docs/document/v2/android/room_members.md | 4 +- docs/document/v2/android/room_overview.md | 4 +- docs/document/v2/android/thread.md | 8 +- docs/document/v2/android/thread_message.md | 4 +- docs/document/v2/android/user_relationship.md | 4 +- docs/document/v2/android/userprofile.md | 6 +- docs/document/v2/applet/alipay.md | 12 +- docs/document/v2/applet/baidu.md | 12 +- docs/document/v2/applet/bytedance.md | 12 +- docs/document/v2/applet/initialization.md | 12 +- .../v2/applet/message_send_receive.md | 4 +- docs/document/v2/applet/overview.md | 3 +- docs/document/v2/applet/qq.md | 12 +- docs/document/v2/applet/releasenote.md | 12 +- docs/document/v2/applet/serverconfig.md | 3 +- docs/document/v2/applet/uniapp.md | 15 +- docs/document/v2/applet/uniappnativeapp.md | 13 +- docs/document/v2/applet/wechat.md | 12 +- docs/document/v2/electron/appendix.md | 53 + docs/document/v2/electron/chatmanage.md | 458 ++++++++ docs/document/v2/electron/demo.md | 6 + docs/document/v2/electron/group_manage.md | 1018 +++++++++++++++++ docs/document/v2/electron/message.md | 257 +++++ docs/document/v2/electron/multi_device.md | 23 + docs/document/v2/electron/overview.md | 152 +++ docs/document/v2/electron/quickstart.md | 228 ++++ docs/document/v2/electron/releasenote.md | 59 + docs/document/v2/electron/room_manage.md | 106 ++ .../document/v2/electron/user_relationship.md | 338 ++++++ docs/document/v2/flutter/error.md | 4 +- docs/document/v2/flutter/group_attributes.md | 4 +- docs/document/v2/flutter/group_manage.md | 3 +- docs/document/v2/flutter/group_members.md | 4 +- docs/document/v2/flutter/message_manage.md | 2 +- docs/document/v2/flutter/message_modify.md | 2 +- docs/document/v2/flutter/message_receipt.md | 8 +- docs/document/v2/flutter/message_retrieve.md | 8 +- .../v2/flutter/message_send_receive.md | 5 +- docs/document/v2/flutter/moderation.md | 2 +- docs/document/v2/flutter/multi_device.md | 9 +- docs/document/v2/flutter/overview.md | 8 +- docs/document/v2/flutter/presence.md | 7 +- docs/document/v2/flutter/quickstart.md | 12 +- docs/document/v2/flutter/reaction.md | 5 +- docs/document/v2/flutter/room_attributes.md | 3 +- docs/document/v2/flutter/room_manage.md | 9 +- docs/document/v2/flutter/room_members.md | 4 +- docs/document/v2/flutter/thread.md | 8 +- docs/document/v2/flutter/thread_message.md | 4 +- docs/document/v2/flutter/user_relationship.md | 2 +- docs/document/v2/flutter/userprofile.md | 4 +- docs/document/v2/ios/demo.md | 13 +- docs/document/v2/ios/easecallkit.md | 10 +- docs/document/v2/ios/easeimkit.md | 24 +- docs/document/v2/ios/group_attributes.md | 4 +- docs/document/v2/ios/group_manage.md | 3 +- docs/document/v2/ios/group_members.md | 4 +- docs/document/v2/ios/message_manage.md | 2 +- docs/document/v2/ios/message_modify.md | 2 +- docs/document/v2/ios/message_receipt.md | 8 +- docs/document/v2/ios/message_retrieve.md | 10 +- docs/document/v2/ios/message_send_receive.md | 4 +- docs/document/v2/ios/multi_device.md | 6 +- docs/document/v2/ios/overview.md | 10 +- docs/document/v2/ios/presence.md | 4 +- docs/document/v2/ios/push.md | 4 +- docs/document/v2/ios/quickstart.md | 2 +- docs/document/v2/ios/reaction.md | 5 +- docs/document/v2/ios/releasenote.md | 6 +- docs/document/v2/ios/room_attributes.md | 4 +- docs/document/v2/ios/room_manage.md | 9 +- docs/document/v2/ios/room_members.md | 3 +- docs/document/v2/ios/thread.md | 8 +- docs/document/v2/ios/thread_message.md | 5 +- docs/document/v2/ios/user_relationship.md | 2 +- docs/document/v2/ios/userprofile.md | 6 +- docs/document/v2/linux/overview.md | 109 ++ docs/document/v2/linux/releasenote.md | 6 + docs/document/v2/linux/techspec.md | 7 + .../v2/privatization/easemob_app_token.md | 82 ++ .../v2/privatization/easemob_user_token.md | 219 ++++ .../privatization/faq_integration_issues.md | 53 + .../v2/privatization/faq_quality_issues.md | 90 ++ .../document/v2/privatization/uc_configure.md | 14 +- docs/document/v2/privatization/uc_deploy.md | 12 +- docs/document/v2/privatization/uc_glossary.md | 201 ++++ .../v2/privatization/uc_introduction.md | 130 +++ .../v2/privatization/uc_limitation.md | 88 ++ docs/document/v2/privatization/uc_private.md | 104 +- docs/document/v2/react-native/error.md | 4 +- .../v2/react-native/group_attributes.md | 4 +- docs/document/v2/react-native/group_manage.md | 3 +- .../document/v2/react-native/group_members.md | 4 +- .../v2/react-native/message_manage.md | 7 +- .../v2/react-native/message_modify.md | 2 +- .../v2/react-native/message_receipt.md | 8 +- .../v2/react-native/message_send_receive.md | 4 +- .../v2/react-native/message_translation.md | 2 +- docs/document/v2/react-native/multi_device.md | 12 +- docs/document/v2/react-native/overview.md | 12 +- docs/document/v2/react-native/presence.md | 4 +- docs/document/v2/react-native/quickstart.md | 4 +- docs/document/v2/react-native/reaction.md | 4 +- docs/document/v2/react-native/releasenote.md | 3 +- .../v2/react-native/room_attributes.md | 4 +- docs/document/v2/react-native/room_manage.md | 9 +- docs/document/v2/react-native/room_members.md | 4 +- docs/document/v2/react-native/thread.md | 5 +- .../v2/react-native/thread_message.md | 2 +- .../v2/react-native/user_relationship.md | 2 +- docs/document/v2/react-native/userprofile.md | 4 +- .../document/v2/server-side/account_system.md | 14 +- docs/document/v2/server-side/callback.md | 16 +- docs/document/v2/server-side/chatroom.md | 8 +- .../v2/server-side/easemob_app_token.md | 2 +- .../v2/server-side/easemob_user_token.md | 2 +- .../v2/server-side/enable_and_configure_IM.md | 2 +- docs/document/v2/server-side/error.md | 6 +- docs/document/v2/server-side/group.md | 12 +- .../v2/server-side/java_server_sdk.md | 4 +- docs/document/v2/server-side/limitation.md | 2 +- .../v2/server-side/message_chatroom.md | 11 +- .../v2/server-side/message_download.md | 12 +- docs/document/v2/server-side/message_group.md | 12 +- .../v2/server-side/message_historical.md | 10 +- .../document/v2/server-side/message_import.md | 9 +- .../document/v2/server-side/message_recall.md | 4 +- .../document/v2/server-side/message_single.md | 14 +- docs/document/v2/server-side/overview.md | 5 +- .../document/v2/server-side/php_server_sdk.md | 6 +- docs/document/v2/server-side/presence.md | 11 +- docs/document/v2/server-side/push.md | 16 +- docs/document/v2/server-side/reaction.md | 10 +- .../v2/server-side/user_relationship.md | 10 +- .../v2/server-side/user_status_callback.md | 3 +- docs/document/v2/server-side/userprofile.md | 8 +- docs/document/v2/unity/group_attributes.md | 4 +- docs/document/v2/unity/group_manage.md | 4 +- docs/document/v2/unity/group_members.md | 4 +- docs/document/v2/unity/message_manage.md | 2 +- docs/document/v2/unity/message_modify.md | 2 +- docs/document/v2/unity/message_receipt.md | 8 +- docs/document/v2/unity/message_retrieve.md | 9 +- .../document/v2/unity/message_send_receive.md | 4 +- docs/document/v2/unity/multi_device.md | 8 +- docs/document/v2/unity/overview.md | 12 +- docs/document/v2/unity/presence.md | 7 +- docs/document/v2/unity/quickstart.md | 10 +- docs/document/v2/unity/reaction.md | 5 +- docs/document/v2/unity/releasenote.md | 4 +- docs/document/v2/unity/room_attributes.md | 4 +- docs/document/v2/unity/room_manage.md | 9 +- docs/document/v2/unity/room_members.md | 4 +- docs/document/v2/unity/thread.md | 8 +- docs/document/v2/unity/thread_message.md | 4 +- docs/document/v2/unity/user_relationship.md | 2 +- docs/document/v2/unity/userprofile.md | 4 +- docs/document/v2/web/demo_react.md | 10 +- docs/document/v2/web/demo_vue.md | 9 +- docs/document/v2/web/group_attributes.md | 2 +- docs/document/v2/web/group_manage.md | 3 +- docs/document/v2/web/group_members.md | 2 +- docs/document/v2/web/message_receipt.md | 9 +- docs/document/v2/web/message_retrieve.md | 6 +- docs/document/v2/web/message_send_receive.md | 6 +- docs/document/v2/web/multi_device.md | 8 +- docs/document/v2/web/overview.md | 12 +- docs/document/v2/web/presence.md | 4 +- docs/document/v2/web/privatecloud.md | 4 +- docs/document/v2/web/push.md | 5 +- docs/document/v2/web/quickstart.md | 6 +- docs/document/v2/web/reaction.md | 5 +- docs/document/v2/web/releasenote.md | 5 - docs/document/v2/web/room_attributes.md | 4 +- docs/document/v2/web/room_manage.md | 9 +- docs/document/v2/web/room_members.md | 3 +- docs/document/v2/web/room_overview.md | 6 +- docs/document/v2/web/thread.md | 8 +- docs/document/v2/web/thread_message.md | 5 +- docs/document/v2/web/user_relationship.md | 4 +- docs/document/v2/web/userprofile.md | 6 +- docs/document/v2/windows/group_attributes.md | 4 +- docs/document/v2/windows/group_manage.md | 5 +- docs/document/v2/windows/group_members.md | 4 +- docs/document/v2/windows/message_manage.md | 2 +- docs/document/v2/windows/message_modify.md | 2 +- docs/document/v2/windows/message_receipt.md | 8 +- docs/document/v2/windows/message_retrieve.md | 8 +- .../v2/windows/message_send_receive.md | 4 +- docs/document/v2/windows/multi_device.md | 8 +- docs/document/v2/windows/overview.md | 12 +- docs/document/v2/windows/presence.md | 7 +- docs/document/v2/windows/quickstart.md | 10 +- docs/document/v2/windows/reaction.md | 5 +- docs/document/v2/windows/releasenote.md | 4 +- docs/document/v2/windows/room_attributes.md | 4 +- docs/document/v2/windows/room_manage.md | 9 +- docs/document/v2/windows/room_members.md | 3 +- docs/document/v2/windows/thread.md | 8 +- docs/document/v2/windows/thread_message.md | 4 +- docs/document/v2/windows/user_relationship.md | 2 +- docs/document/v2/windows/userprofile.md | 4 +- docs/private/media/conference_android.md | 8 +- docs/private/media/conference_ios.md | 8 +- docs/private/media/conference_web.md | 8 +- docs/private/media/one2one_android.md | 8 +- docs/private/media/one2one_ios.md | 8 +- docs/private/media/one2one_web.md | 4 +- docs/private/media/rest_introduction.md | 4 +- docs/private/media/scenario_live.md | 12 +- docs/private/media/scenario_meeting.md | 12 +- docs/private/media/scenario_one2one.md | 10 +- docs/push/image.png | Bin 0 -> 164586 bytes docs/push/push_androidvendor_statistics.md | 8 +- docs/push/push_by_tag.md | 24 +- docs/push/push_certificate_config.md | 2 +- docs/push/push_createproduct_app.md | 21 +- docs/push/push_integration_note_android.md | 6 +- docs/push/push_integration_note_ios.md | 10 +- docs/push/push_send_notification.md | 22 +- static/images/instantpush/push_create_app.jpg | Bin 0 -> 114317 bytes static/images/instantpush/push_open_app.jpg | Bin 0 -> 147291 bytes .../images/instantpush/push_sdk_download.jpg | Bin 0 -> 164758 bytes .../privitization/deploy_user_manage.png | Bin 0 -> 160170 bytes .../privitization/faq-msgdeliveryquery.jpg | Bin 0 -> 264025 bytes .../faq-userconnectionstatus.jpg | Bin 0 -> 233498 bytes static/images/privitization/framework.jpg | Bin 0 -> 101130 bytes 257 files changed, 4540 insertions(+), 915 deletions(-) create mode 100644 docs/.vuepress/public/icon-linux-hover.svg create mode 100644 docs/.vuepress/public/icon-linux.svg create mode 100644 docs/.vuepress/public/si-glyph-electron (1).svg create mode 100644 docs/.vuepress/public/si-glyph-electron.svg create mode 100644 docs/document/v2/electron/appendix.md create mode 100644 docs/document/v2/electron/chatmanage.md create mode 100644 docs/document/v2/electron/demo.md create mode 100644 docs/document/v2/electron/group_manage.md create mode 100644 docs/document/v2/electron/message.md create mode 100644 docs/document/v2/electron/multi_device.md create mode 100644 docs/document/v2/electron/overview.md create mode 100644 docs/document/v2/electron/quickstart.md create mode 100644 docs/document/v2/electron/releasenote.md create mode 100644 docs/document/v2/electron/room_manage.md create mode 100644 docs/document/v2/electron/user_relationship.md create mode 100644 docs/document/v2/linux/overview.md create mode 100644 docs/document/v2/linux/releasenote.md create mode 100644 docs/document/v2/linux/techspec.md create mode 100644 docs/document/v2/privatization/easemob_app_token.md create mode 100644 docs/document/v2/privatization/easemob_user_token.md create mode 100644 docs/document/v2/privatization/faq_integration_issues.md create mode 100644 docs/document/v2/privatization/faq_quality_issues.md create mode 100644 docs/document/v2/privatization/uc_glossary.md create mode 100644 docs/document/v2/privatization/uc_introduction.md create mode 100644 docs/document/v2/privatization/uc_limitation.md create mode 100644 docs/push/image.png create mode 100644 static/images/instantpush/push_create_app.jpg create mode 100644 static/images/instantpush/push_open_app.jpg create mode 100644 static/images/instantpush/push_sdk_download.jpg create mode 100644 static/images/privitization/deploy_user_manage.png create mode 100644 static/images/privitization/faq-msgdeliveryquery.jpg create mode 100644 static/images/privitization/faq-userconnectionstatus.jpg create mode 100644 static/images/privitization/framework.jpg diff --git a/docs/.vuepress/components/PlatformSwitch.vue b/docs/.vuepress/components/PlatformSwitch.vue index e28f3f324..e23a553a5 100644 --- a/docs/.vuepress/components/PlatformSwitch.vue +++ b/docs/.vuepress/components/PlatformSwitch.vue @@ -44,6 +44,14 @@ const PLATFORM_ICON_MAP = { icon : '/icon-platform.svg', activeIcon: '/icon-platform-hover.svg', }, + electron: { + icon : '/icon-Electron.svg', + activeIcon: '/icon-Electron-hover.svg', + }, + linux: { + icon : '/icon-linux.svg', + activeIcon: '/icon-linux-hover.svg', + }, } const platform = ref('android') @@ -84,7 +92,7 @@ const options = [ options: [ { value: 'privatization', - label: '服务部署', + label: '环境准备', }, ], }, @@ -122,11 +130,20 @@ const options = [ { value: 'applet', label: '小程序', + + }, + { + value: 'electron', + label: 'Electron', + }, + { + value: 'linux', + label: 'Linux', }, { value: 'server-side', label: 'Rest Api', - } + }, ], }, ] diff --git a/docs/.vuepress/public/icon-linux-hover.svg b/docs/.vuepress/public/icon-linux-hover.svg new file mode 100644 index 000000000..336b3ce1b --- /dev/null +++ b/docs/.vuepress/public/icon-linux-hover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/.vuepress/public/icon-linux.svg b/docs/.vuepress/public/icon-linux.svg new file mode 100644 index 000000000..eee941b86 --- /dev/null +++ b/docs/.vuepress/public/icon-linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/.vuepress/public/si-glyph-electron (1).svg b/docs/.vuepress/public/si-glyph-electron (1).svg new file mode 100644 index 000000000..7b267ee7c --- /dev/null +++ b/docs/.vuepress/public/si-glyph-electron (1).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/.vuepress/public/si-glyph-electron.svg b/docs/.vuepress/public/si-glyph-electron.svg new file mode 100644 index 000000000..c4701b50c --- /dev/null +++ b/docs/.vuepress/public/si-glyph-electron.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/.vuepress/sidebar/document_v2.ts b/docs/.vuepress/sidebar/document_v2.ts index d8dd52ab2..3b337d7a2 100644 --- a/docs/.vuepress/sidebar/document_v2.ts +++ b/docs/.vuepress/sidebar/document_v2.ts @@ -8,26 +8,33 @@ const platformList = getSubDirectories(DOC_PATH) const privateSidebar = { '/document/v2/privatization/': [ { - text: '服务部署', + text: '产品简介', children: [ - { text: '私有化服务部署', link: 'uc_deploy.html' }, + { text: '产品概述', link: 'uc_introduction.html' }, + { text: '产品使用限制', link: 'uc_limitation.html' }, + { text: '术语表', link: 'uc_glossary.html' }, ] - }, + } , { - text: '配置说明', - children: [ - { text: 'Console配置说明', link: 'uc_configure.html' }, - { text: 'Android私有化配置', link: 'uc_android_private.html' }, - { text: 'iOS私有化配置', link: 'uc_iOS_private.html' }, - { text: 'Web私有化配置', link: 'uc_Web_private.html' }, - ] - }, - { - text: 'SDK下载', - children: [ - { text: 'SDK 及 Demo 下载', link: 'uc_private.html' }, - ] - }, + text: '快速开始', + children: [ + { text: '服务部署', link: 'uc_deploy.html' }, + { text: '客户端下载', link: 'uc_private.html' }, + { text: 'Console指南', link: 'uc_configure.html' }, + { text: 'App Token 鉴权', link: 'easemob_app_token.html' }, + { text: 'User Token 鉴权', link: 'easemob_user_token.html' }, + { text: '快速开始(不使用 UIKIT) Android', link: '/document/v2/android/overview.html' }, + { text: '快速开始(不使用 UIKIT)iOS', link: '/document/v2/ios/quickstart.html' }, + { text: '快速开始(不使用 UIKIT) Web', link: '/document/v2/web/quickstart.html' }, + ] + } , + { + text: 'FAQ', + children: [ + { text: 'FAQ质量', link: 'faq_quality_issues.html' }, + { text: ' FAQ集成', link: 'faq_integration_issues.html' }, + ] + } , ] } @@ -60,9 +67,9 @@ const documentSidebar = [ { text: '使用环信 App Token 鉴权', link: 'easemob_app_token.html', only: ['server-side'] }, { text: '使用环信 User Token 鉴权', link: 'easemob_user_token.html', only: ['server-side'] }, { text: 'IM 产品使用限制', link: 'limitation.html', only: ['server-side'] }, - { text: '接口频率限制', link: 'limitationapi.html', only: ['server-side'] }, + /*{ text: '接口频率限制', link: 'limitationapi.html', only: ['server-side'] },*/ ], - except: ['applet'] + except: ['applet', 'linux', 'electron'] }, { text: '基础功能', @@ -78,7 +85,7 @@ const documentSidebar = [ { text: '管理服务端消息', link: 'message_retrieve.html', except: ['react-native'] }, { text: '管理消息回执', link: 'message_receipt.html' }, { text: '修改消息', link: 'message_modify.html' }, - { text: '翻译', link: 'message_translation.html' }, + /*{ text: '翻译', link: 'message_translation.html' },*/ ] }, { text: '管理用户属性', link: 'userprofile.html' }, @@ -104,7 +111,7 @@ const documentSidebar = [ ] }, ], - except: ['applet', 'server-side'] + except: ['applet', 'server-side','electron'] }, { text: '进阶功能', @@ -121,9 +128,9 @@ const documentSidebar = [ { text: '管理子区消息', link: 'thread_message.html' } ] }, - { text: '消息审核(举报)', link: 'moderation.html'}, + /*{ text: '消息审核(举报)', link: 'moderation.html'},*/ ], - except: ['applet','server-side'] + except: ['applet','server-side','electron'] }, { text: '其他', @@ -168,7 +175,7 @@ const documentSidebar = [ { text: '管理服务端消息', link: 'message_retrieve.html' }, { text: '管理消息回执', link: 'message_receipt.html' }, { text: '修改消息', link: 'message_modify.html' }, - { text: '翻译', link: 'message_translation.html' }, + /**{ text: '翻译', link: 'message_translation.html' },**/ ] }, { text: '用户属性', link: 'userprofile.html' }, @@ -211,7 +218,7 @@ const documentSidebar = [ { text: '管理子区消息', link: 'thread_message.html' } ] }, - { text: '消息审核(举报)', link: 'moderation.html'}, + /**{ text: '消息审核(举报)', link: 'moderation.html'},**/ ], only: ['applet'] }, @@ -274,7 +281,45 @@ const documentSidebar = [ { text: '发送后回调-事件回调', link: 'callback_configurations.html' } ], only: ['server-side'] - } + }, + { + text: 'Linux开发文档', + children: [ + { text: '集成说明', link: 'overview.html' }, + { text: '技术参数', link: 'techspec.html' }, + { text: 'SDK更新日志', link: 'releasenote.html' }, + ], + only: ['linux'] + }, + { + text: '快速开始', + children: [ + { text: 'Demo下载体验', link: 'demo.html' }, + { text: '快速开始', link: 'quickstart.html' }, + { text: '集成概述', link: 'overview.html' }, + { text: 'SDK更新日志', link: 'releasenote.html' }, + ], + only: ['electron'] + }, + { + text: '基础功能', + children: [ + { text: '消息管理', link: 'message.html' }, + { text: '会话管理', link: 'chatmanage.html' }, + { text: '好友管理', link: 'user_relationship.html' }, + { text: '群组管理', link: 'group_manage.html' }, + { text: '聊天室管理', link: 'room_manage.html' }, + ], + only: ['electron'] + }, + { + text: '进阶功能', + children: [ + { text: '多设备监听', link: 'multi_device.html' }, + { text: '附录', link: 'appendix.html' }, + ], + only: ['electron'] + }, ] function buildDocSidebar() { diff --git a/docs/.vuepress/sidebar/push.ts b/docs/.vuepress/sidebar/push.ts index 0c0d424d3..e7b926f92 100644 --- a/docs/.vuepress/sidebar/push.ts +++ b/docs/.vuepress/sidebar/push.ts @@ -8,15 +8,15 @@ export const PUSH_SIDEBAR = [ { text: 'Android SDK 发布动态', link: 'push_dynamics_android.html' }, { text: 'iOS SDK 发布动态', link: 'push_dynamics_ios.html' }, ]}, - { text: '全球化部署', link: 'push_global_deployment.html' }, + /**{ text: '全球化部署', link: 'push_global_deployment.html' },**/ ] }, - { + /** { text: '产品定价', children: [ { text: '计费说明', link: 'push_billing.html' }, ] - }, + },**/ { text: '快速入门', children: [ diff --git a/docs/document/v2/android/demo.md b/docs/document/v2/android/demo.md index e675ba063..0b8f7fc8a 100644 --- a/docs/document/v2/android/demo.md +++ b/docs/document/v2/android/demo.md @@ -4,23 +4,22 @@ 环信即时通讯 IM Android 端提供示例应用可供体验。 -1. [下载 Demo](https://www.easemob.com/download/demo)。 +1. [下载 Demo](https://downloadsdk.easemob.com/mp/downloads/sdk/imsdkdemo_android-4.1.2.apk)。 -2. 输入你的手机号,获取验证码,然后输入。 +2. 输入你的登录账号和密码。 3. 选择同意《环信服务条款》与《环信隐私协议》,然后点击 **登录** 登录 Demo。 -![img](@static/images/demo/android_login.png) + ## 代码下载 您可以通过以下两种方式获取到源代码: -- 下载代码压缩包:[IM SDK 及 Demo 下载](https://www.easemob.com/download/im) -- 下载源代码:[github源码地址](https://github.com/easemob/chat-android) +- 下载代码压缩包:[IM SDK 及 Demo 下载](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip) 欢迎大家提交 PR 改进和修复 EaseIM 和 EaseIMKit 中的问题。 ## 导入 EaseIM -从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 Android SDK 压缩包,然后解压。解压后在 examples 文件夹下,即为 EaseIM 的工程目录。 +下载 Android SDK 压缩包,然后解压。解压后在 examples 文件夹下,即为 EaseIM 的工程目录。 ### 导入到 Android Studio 打开 Android Studio,点击 File > Open,打开 EaseIm3.0 根目录即可。 :::notice @@ -58,6 +57,14 @@ - **ContactListFragment**:继承自 EaseIMKit 中的 EaseContactListFragment,展示了添加头布局,添加条目长按功能及实现条目点击事件等; - **GroupDetailActivity**:实现了如下功能:添加群成员,修改群公告及群介绍,上传共享文件,进行群组管理,设置消息免打扰及解散或者退出群组等。 ## 部分 UI 展示 -![会话列表](@static/images/android/app-demo-ui-1.jpeg) -![联系人列表](@static/images/android/app-demo-ui-2.jpeg) -![聊天页面](@static/images/android/app-demo-ui-3.jpeg) \ No newline at end of file + +   +   + + \ No newline at end of file diff --git a/docs/document/v2/android/easecallkit.md b/docs/document/v2/android/easecallkit.md index 7af7401b8..a7f96e818 100644 --- a/docs/document/v2/android/easecallkit.md +++ b/docs/document/v2/android/easecallkit.md @@ -14,7 +14,7 @@ ## 跑通 Demo -EaseCallKit 集成在环信开源 IM Demo 中,你可以通过进入 [环信 Demo 及源码](https://www.easemob.com/download/im) 下载页面,选择 Android 端进行下载,直接下载: [Android IM 源码](https://github.com/easemob/chat-android)。 +EaseCallKit 集成在环信开源 IM Demo 中,你可以直接下载 Android 端源码 [Android IM 源码](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip)。 环境准备: @@ -32,7 +32,7 @@ EaseCallKit 集成在环信开源 IM Demo 中,你可以通过进入 [环信 De 集成该库之前,你需要满足以下条件: -- 分别创建 [环信应用](/product/enable_and_configure_IM.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目); +- 分别创建 [环信应用](/document/v2/privatization/uc_configure.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目); - 已完成环信 IM 的基本功能,包括登录、好友、群组以及会话等的集成; - 上线之前开通声网 Token 验证时,用户需要实现自己的 [App Server](https://github.com/easemob/easemob-im-app-server/tree/master/agora-app-server),用于生成 Token。具体请参见 [创建 Token 服务及使用 App Server 生成 Token](https://docportal.shengwang.cn/cn/video-call-4.x/token_server_ios_ng)。 @@ -65,7 +65,7 @@ implementation 'io.hyphenate:ease-call-kit:3.8.9' #### 源码集成 -- 下载 [EaseCallKit 源码](https://github.com/easemob/easecallkitui-android); +- 下载 [EaseCallKit 源码](https://github.com/easemob/easecallkitui-android/tree/EaseCallKit_4.1.0); - 在 `build.gradle` 中增加以下内容,重新 build 你的项目即可。 ```gradle @@ -201,7 +201,7 @@ public void startInviteMultipleCall(final String[] users,final String ext){} 发起通话后的 UI 界面如下: -![img](@static/images/android/sendcall.png) + ### 被叫收到通话邀请 @@ -221,7 +221,7 @@ void onRevivedCall(EaseCallType callType, String userId,String ext){} 收到通话邀请后的界面如下: -![img](@static/images/android/called.jpeg) + ### 多人通话中邀请 diff --git a/docs/document/v2/android/easeimkit.md b/docs/document/v2/android/easeimkit.md index 572314c07..4235dd546 100644 --- a/docs/document/v2/android/easeimkit.md +++ b/docs/document/v2/android/easeimkit.md @@ -12,11 +12,11 @@ EaseIMKit 是什么? EaseIMKit 源码地址 -- [EaseIMKit](https://github.com/easemob/easeui/tree/EaseIMKit) +- [EaseIMKit](https://github.com/easemob/easeui/tree/EaseIMKit_4.1.0) 使用 EaseIMKIt 的环信 IM APP 源码地址: -- [环信 IM](https://github.com/easemob/chat-android) +- [环信 IM](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip) ## 导入 EaseIMKit @@ -100,7 +100,8 @@ EaseIMKit 封装了常用 IM 功能,提供了会话,聊天及联系人等基 EaseIMKit 提供了 EaseConversationListFragment,需要将其或者其子类添加到 Activity 中。开发者需要对刷新事件(新消息,删除消息,删除会话等)进行处理。 -![img](@static/images/android/easeim.jpeg) + + :::notice 要实现自定义头像及昵称,请参考 [设置头像和昵称](userprofile.html#设置当前用户的属性)。 @@ -136,13 +137,13 @@ public class ChatActivity extends BaseActivity { } ``` -![img](@static/images/android/easeim1.jpeg) + ### 添加联系人界面 EaseIMKit 提供了 EaseContactListFragment,添加其及其子类到 Activity 中。开发者需要对刷新事件(添加联系人,删除联系人等)进行处理。 -![img](@static/images/android/easeim2.jpeg) + ## 设置样式 @@ -150,7 +151,7 @@ EaseIMKit 提供了 EaseContactListFragment,添加其及其子类到 Activity EaseIMKit 提供了自定义的标题栏控件 EaseTitleBar。 -![img](@static/images/android/easeim-titlebar.jpeg) + 标题栏除了做为 View 所具有的属性功能外,还可以设置标题的位置等。 @@ -215,10 +216,10 @@ conversationListLayout.hideUnreadDot(false); conversationListLayout.showUnreadDotPosition(EaseConversationSetStyle.UnreadDotPosition.LEFT); ``` -效果如下图: +效果如下图,更多样式请参考 EaseContactListLayout 控件。 + + -![img](@static/images/android/easeim3.jpeg) -更多样式请参考 EaseContactListLayout 控件。 #### 增加长按菜单项 @@ -262,7 +263,7 @@ public boolean onMenuItemClick(MenuItem item, int position) { 聊天窗口包括标题栏(不包含在 EaseChatFragment 中),聊天区,输入区及扩展展示区,如下图所示: -![img](@static/images/android/easeim4.png) + 标题区 EaseTitleBar 的具体布局及实现不在 EaseIMKit 库的聊天控件及 fragment 中,需要你自己去实现。 开发者可以在 EaseChatFragment 中获取到 EaseChatLayout 这个控件,然后通过这个控件进一步获取到获取其他控件,代码如下: @@ -295,7 +296,7 @@ messageListLayout.setBackground(new ColorDrawable(Color.parseColor("#DA5A4D"))); 效果如下图: -![img](@static/images/android/easeim5.jpeg) + #### 修改头像属性 @@ -312,7 +313,7 @@ messageListLayout.setAvatarShapeType(1); 效果如下图: -![img](@static/images/android/easeim6.jpeg) + #### 修改聊天文本 @@ -329,7 +330,7 @@ messageListLayout.setItemTextColor(ContextCompat.getColor(mContext, R.color.red) 效果如下图: -![img](@static/images/android/easeim7.jpeg) + #### 修改时间线样式 @@ -348,7 +349,7 @@ messageListLayout.setTimeTextColor(ContextCompat.getColor(mContext, R.color.blac 效果如下图: -![img](@static/images/android/easeim8.jpeg) + #### 修改聊天列表展示样式 @@ -363,7 +364,7 @@ messageListLayout.setItemShowType(EaseChatMessageListLayout.ShowType.LEFT); 效果如下图: -![img](@static/images/android/easeim9.jpeg) + #### 修改输入区样式 @@ -395,25 +396,26 @@ if(primaryMenu != null) { 效果(EaseInputMenuStyle.DISABLE_VOICE)如下图: -![img](@static/images/android/easeim10.jpeg) + + 其他样式为: 完整模式(EaseInputMenuStyle.All): -![img](@static/images/android/easeim11.jpeg) + 不可用表情模式(EaseInputMenuStyle.DISABLE_EMOJICON): -![img](@static/images/android/easeim12.jpeg) + 不可用语音和表情模式(EaseInputMenuStyle.DISABLE_VOICE_EMOJICON): -![img](@static/images/android/easeim13.jpeg) + 只有文本输入模式(EaseInputMenuStyle.ONLY_TEXT): -![img](@static/images/android/easeim14.jpeg) + #### 增加自定义消息类型及其布局 @@ -768,7 +770,7 @@ contactList.setHeaderBackGround(ContextCompat.getDrawable(mContext, R.color.whit 效果如图: -![img](@static/images/android/easeim15.jpeg) + 设置简洁模式 @@ -779,7 +781,8 @@ contactLayout.showSimple(); 效果如图: -![img](@static/images/android/easeim16.jpeg) + + #### 增加长按菜单项 diff --git a/docs/document/v2/android/group_attributes.md b/docs/document/v2/android/group_attributes.md index ec13e6e4a..58d6573e8 100644 --- a/docs/document/v2/android/group_attributes.md +++ b/docs/document/v2/android/group_attributes.md @@ -18,8 +18,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/group_manage.md b/docs/document/v2/android/group_manage.md index 9e755fae8..d1cfbda1f 100644 --- a/docs/document/v2/android/group_manage.md +++ b/docs/document/v2/android/group_manage.md @@ -22,8 +22,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/group_members.md b/docs/document/v2/android/group_members.md index c1bd623e5..150ace624 100644 --- a/docs/document/v2/android/group_members.md +++ b/docs/document/v2/android/group_members.md @@ -19,10 +19,9 @@ 开始前,请确保满足以下条件: -- 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 - 了解群成员角色,详见 [群组概述](group_overview.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 ## 实现方法 diff --git a/docs/document/v2/android/group_overview.md b/docs/document/v2/android/group_overview.md index 5bf01cb7f..f026e83a0 100644 --- a/docs/document/v2/android/group_overview.md +++ b/docs/document/v2/android/group_overview.md @@ -20,7 +20,7 @@ | 功能
| 群组
| 聊天室 | | :----------- | :----------------------------------------------------------- | :----------------------------------------------------------- | | 使用场景 | 类似于 Signal,Skype 里的群聊,所有加入的用户拥有固定的关系。 | 类似 Twitch 的直播间,成员间没有固定关系,离开即退出。 | -| 创建方式 | 所有 app 用户都可以创建群组。 | 仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 有权限创建聊天室。 | +| 创建方式 | 所有 app 用户都可以创建群组。 | 仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 有权限创建聊天室。 | | 类型 | 分为公开群和私有群,创建群组时可设置入群是否需获得群主和群管理员的同意,支持不同使用场景。 | 没有公开和私有之分,所有用户均可自由加入或退出。 | | 最大成员数 | 成员数支持取决于所选择的版本,最高版本支持 8,000 人。 | 成员数支持取决于所选择的版本,最高版本支持 10,000 人。如需提升该上限,请联系商务。 | | 离线推送消息 | 离线时,会收到推送消息。 | 离线时,不会收到推送消息;成员离线超过 2 分钟会自动退出聊天室。 | @@ -50,7 +50,7 @@ | 功能 | 描述 | | :----------------- | :----------------------------------------------------------- | -| 创建群组 | 群组分为公开群和私有群,可以对加群的方式进行设置。任何用户都可以创建群组。群组创建者为群组。群组数量和群成员数量根据套餐版本有所不同。详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 | +| 创建群组 | 群组分为公开群和私有群,可以对加群的方式进行设置。任何用户都可以创建群组。群组创建者为群组。 | | 解散群组 | 只有群主才能解散群组。群组一旦解散,所有本地群组数据都会被删除,所有群成员都被强制退出群。 | | 获取群成员列表 | 所有群组用户都可以从服务器获取群组成员的分页列表。成员按加入群组时的时间戳降序显示。 | | 获取群组列表 | 用户可以获取公开群列表和自己创建或加入的群组列表。 | @@ -80,4 +80,4 @@ ### 群组人数限制 -群成员的数量根据不同的套餐版本而不同,免费版 100 人/群,专业版 300 人/群, 旗舰版 3,000 人/群,尊享版 8,000 人/群。 +群成员的数量可按需设置,默认群成员数:2000人/群,可支持调整至8000人/群 diff --git a/docs/document/v2/android/message_manage.md b/docs/document/v2/android/message_manage.md index aa756a7d7..a6dba84ae 100644 --- a/docs/document/v2/android/message_manage.md +++ b/docs/document/v2/android/message_manage.md @@ -32,8 +32,8 @@ 开始前,请确保满足以下条件: -- 完成 SDK 初始化并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/message_modify.md b/docs/document/v2/android/message_modify.md index 73984ffa9..6a9ac5425 100644 --- a/docs/document/v2/android/message_modify.md +++ b/docs/document/v2/android/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。 ::: -你可以调用 `com.hyphenate.chat.EMChatManager#asyncModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `com.hyphenate.chat.EMChatManager#asyncModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。 示例代码如下: diff --git a/docs/document/v2/android/message_overview.md b/docs/document/v2/android/message_overview.md index b6672c58d..26cc14020 100644 --- a/docs/document/v2/android/message_overview.md +++ b/docs/document/v2/android/message_overview.md @@ -59,7 +59,7 @@ Web 和小程序端无本地消息存储。 环信即时通讯 IM 在消息服务器保存历史消息,方便用户在新设备上获取历史消息。 -历史消息存储时间与套餐版本相关:专业版 7 天,旗舰版 90 天, 尊享版 180 天。 +私有部署历史消息存储时间支持自定义,请在部署服务前约定存储时间。 | 功能 | 描述 | 适用的平台/框架| | :---------- | :----------- |:----------------------------------- | diff --git a/docs/document/v2/android/message_receipt.md b/docs/document/v2/android/message_receipt.md index 56038fd77..2d4edbfa9 100644 --- a/docs/document/v2/android/message_receipt.md +++ b/docs/document/v2/android/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -39,9 +39,9 @@ 开始前,请确保满足以下条件: -- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 @@ -200,7 +200,7 @@ EMClient.getInstance().chatManager().addMessageListener(new EMMessageListener() 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 群主或群管理员发送消息时若需已读回执,需设置 `EMMessage` 的方法 `setIsNeedGroupAck()` 为 `YES`。 diff --git a/docs/document/v2/android/message_retrieve.md b/docs/document/v2/android/message_retrieve.md index e5ac77703..8bd255750 100644 --- a/docs/document/v2/android/message_retrieve.md +++ b/docs/document/v2/android/message_retrieve.md @@ -4,9 +4,6 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何获取和删除服务端的会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 -::: ## 技术原理 @@ -23,8 +20,8 @@ 开始前,请确保满足以下条件: -- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -159,8 +156,9 @@ EMClient.getInstance().chatManager().asyncFetchHistoryMessage( 你可以调用 `removeMessagesFromServer` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。登录该账号的其他设备会收到 `EMMultiDeviceListener` 中的 `onMessageRemoved` 回调,已删除的消息自动从设备本地移除。 -:::tip -若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本并联系商务开通。 + +:::notice +若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本 ::: 示例代码如下: diff --git a/docs/document/v2/android/message_send_receive.md b/docs/document/v2/android/message_send_receive.md index 0b1551778..0803cd2b2 100644 --- a/docs/document/v2/android/message_send_receive.md +++ b/docs/document/v2/android/message_send_receive.md @@ -40,7 +40,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -117,7 +117,7 @@ EMClient.getInstance().chatManager().removeMessageListener(msgListener); ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```java try { diff --git a/docs/document/v2/android/moderation.md b/docs/document/v2/android/moderation.md index c9a7e1677..1ec745b8b 100644 --- a/docs/document/v2/android/moderation.md +++ b/docs/document/v2/android/moderation.md @@ -13,8 +13,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 已在 [环信即时通讯云控制台](https://console.easemob.com/user/login) 开通消息审核服务。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 已在 环信即时通讯云控制台开通消息审核服务。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/multi_device.md b/docs/document/v2/android/multi_device.md index 2aaa8e140..c7b3eb1eb 100644 --- a/docs/document/v2/android/multi_device.md +++ b/docs/document/v2/android/multi_device.md @@ -11,7 +11,7 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +24,7 @@ - +
@@ -37,8 +37,8 @@ - - + +
单端/多端登录设备支持自动登录时,若设备下线后自动重连时需要判断是否踢掉当前在线的最早登录设备,请联系环信商务。
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
@@ -137,7 +137,7 @@ EMClient.getInstance().chatManager().sendMessage(message); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/android/overview.md b/docs/document/v2/android/overview.md index a0e284094..a2d35d8b2 100644 --- a/docs/document/v2/android/overview.md +++ b/docs/document/v2/android/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -57,7 +57,7 @@ EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。 :::notice - 以上注册模式为在客户端注册,旨在方便测试,并不推荐在正式环境中使用; -- 正式环境应使用服务器端调用 REST API 接口[注册用户](/document/server-side/account_system.html#注册用户)。 +- 正式环境应使用服务器端调用 REST API 接口[注册用户](/document/v2/server-side/account_system.html#注册用户)。 ::: ## 用户登录 @@ -67,7 +67,7 @@ EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。 - 用户 ID + 密码 - 用户 ID + token -手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -92,7 +92,7 @@ EMClient.getInstance().login(mAccount, mPassword, new EMCallBack() { }); ``` -**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/android/presence.md b/docs/document/v2/android/presence.md index b1c430652..5486bf229 100644 --- a/docs/document/v2/android/presence.md +++ b/docs/document/v2/android/presence.md @@ -35,8 +35,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `3.9.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 @@ -44,7 +44,7 @@ ### 订阅指定用户的在线状态 -默认情况下,你不关注任何其他用户的在线状态。你可以通过调用 `com.hyphenate.chat.EMPresenceManager#subscribePresences` 方法订阅指定用户的在线状态,示例代码如下: +默认情况下,你不关注任何其他用户的在线状态。你可以通过调用方法订阅指定用户的在线状态, `com.hyphenate.chat.EMPresenceManager#subscribePresences` 示例代码如下: ```java EMClient.getInstance().presenceManager().subscribePresences(contactsFromServer, 1 * 24 * 3600, new EMValueCallBack>() { diff --git a/docs/document/v2/android/push.md b/docs/document/v2/android/push.md index 33cab9136..24d4436be 100644 --- a/docs/document/v2/android/push.md +++ b/docs/document/v2/android/push.md @@ -38,9 +38,9 @@ ## 前提条件 -- 已开启环信即时通讯服务,详见 [开启和配置即时通讯服务](/product/enable_and_configure_IM.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 你已在 [环信控制台](https://console.easemob.com/user/login)中激活推送高级功能。高级功能激活后,你可以设置推送通知方式、免打扰模式和自定义推送模板。如需关闭推送高级功能必须联系商务,因为该操作会删除所有相关配置。 +- 已开启环信即时通讯服务,详见 [环信控制台Console操作指南](/document/v2/privatization/uc_deploy.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 你已在 环信控制台中激活推送高级功能。高级功能激活后,你可以设置推送通知方式、免打扰模式和自定义推送模板。如需关闭推送高级功能必须联系商务,因为该操作会删除所有相关配置。 各推送使用条件: @@ -104,7 +104,7 @@ EMClient.getInstance().init(this, options); **步骤二:上传推送证书。** -注册完成后,在[环信即时通讯云控制台](https://console.easemob.com/user/login)上传推送证书,选择你的应用 > **即时通讯** > **功能配置** > **消息推送** > **证书配置**,点击 **添加推送证书**。即时通讯 IM 支持 FCM 的旧版证书和 v1 版证书。 +注册完成后,在环信即时通讯云控制台上传推送证书,选择你的应用 > **即时推送** > **配置证书**,点击 **添加推送证书**。即时通讯 IM 支持 FCM 的旧版证书和 v1 版证书。 - 若 **证书类型** 选择 **旧版**,你需要将 **证书名称** 设置为 FCM 的发送者 ID,**推送秘钥** 设置为 FCM 的服务器密钥。你需在 [Firebase 控制台](https://console.firebase.google.com/?hl=zh-cn)的 **项目设置 > 云消息传递** 页面中,在 **Cloud Messaging API(旧版)** 区域中获取发送者 ID 和服务器密钥,如下图所示。配置完毕,设置 **铃声**、**推送优先级设置** 和 **推送消息类型** 参数。 @@ -287,10 +287,10 @@ public class EMFCMMSGService extends FirebaseMessagingService { 详见[荣耀推送官网说明](https://developer.hihonor.com/cn/kitdoc?category=%E5%9F%BA%E7%A1%80%E6%9C%8D%E5%8A%A1&kitId=11002&navigation=guides&docId=kit-history.md&token=)。 -**步骤 2:在[环信即时通讯云控制台](https://console.easemob.com/user/login)上传荣耀推送证书。** +**步骤 2:在环信即时通讯云控制台上传荣耀推送证书。** -1. 在环信即时通讯云控制台首页的`应用列表`中,点击目标应用的**操作**栏中的**查看**。 -2. 在右侧导航栏中,选择**即时通讯** > **功能配置** > **消息推送** > **证书管理**,点击**添加推送证书**。 +1. 在环信即时通讯云控制台首页的`应用列表`中,点击目标应用的**操作**栏中的**管理**。 +2. 在右侧导航栏中,选择**即时推送** > **配置证书** ,点击**添加推送证书**。 3. 在**添加推送证书**对话框中选择**荣耀**,配置荣耀推送参数。 ![image](@static/images/android/push/add_honor_push_template.png) @@ -900,7 +900,7 @@ OPPO 推送在 2.1.0 适配了 Android Q,在 Android Q 上接收 OPPO 推送 - 设置推送通知,包含设置推送通知方式和免打扰模式。 - 配置推送翻译和推送模板。 -其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)上开通。 +其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在环信即时通讯云控制后台上开通。 ![image](@static/images/android/push/push_android_enable_push.png) @@ -1139,7 +1139,7 @@ EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle(); #### 4.3 设置推送翻译 -如果用户启用 [自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 +如果用户启用 自动翻译 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。 @@ -1158,7 +1158,7 @@ EMClient.getInstance().pushManager().getPreferredNotificationLanguage(new EMValu 环信 IM 支持自定义推送通知模板。使用前,你可参考以下步骤在环信即时通讯云管理后台上创建推送模板: 1. 登录环信 IM Console,进入首页。 -2. 在 **应用列表** 区域中,点击对应 app 的 **操作** 一栏中的 **查看** 按钮。 +2. 在 **应用列表** 区域中,点击对应 app 的 **操作** 一栏中的 **管理** 按钮。 3. 在环信 IM 配置页面的左侧导航栏,选择 **即时通讯 > 功能配置 > 消息推送 > 模板管理**,进入推送模板管理页面。 ![image](@static/images/android/push/push_android_template_mgmt.png) 4. 点击 **添加推送模板**。弹出以下页面,进行参数配置。 diff --git a/docs/document/v2/android/quickstart.md b/docs/document/v2/android/quickstart.md index f630ddf92..59012bbf5 100644 --- a/docs/document/v2/android/quickstart.md +++ b/docs/document/v2/android/quickstart.md @@ -23,7 +23,7 @@ - Android Studio 3.0 或以上版本; - Android SDK API 等级 21 或以上; - Android 5.0 或以上版本的设备; -- 有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。 +- 有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。 ## 准备开发环境 @@ -168,7 +168,7 @@ implementation 'io.hyphenate:hyphenate-sdk-lite:3.7.5' // 精简版,只包含I ``` -关于 App Key 对应的 value 获取,在 [环信即时通讯 IM 管理后台](https://console.easemob.com/user/login) 创建应用后,申请 App Key 并进行相关配置。 +关于 App Key 对应的 value 获取,在 [环信即时通讯 IM 管理后台](/document/v2/privatization/uc_configure.html) 创建应用后,申请 App Key 并进行相关配置。 ### 4. 防止代码混淆 @@ -212,7 +212,7 @@ try { ``` :::notice -该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见[注册单个用户](/document/server-side/account_system.html#注册单个用户)。 +该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见[注册单个用户](/document/v2/server-side/account_system.html#注册用户)。 ::: ### 3. 登录账号 diff --git a/docs/document/v2/android/reaction.md b/docs/document/v2/android/reaction.md index ed399f6dc..499e15b43 100644 --- a/docs/document/v2/android/reaction.md +++ b/docs/document/v2/android/reaction.md @@ -7,7 +7,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -31,8 +30,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `3.9.2.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/android/releasenote.md b/docs/document/v2/android/releasenote.md index cae5ca651..b95fc1cfb 100644 --- a/docs/document/v2/android/releasenote.md +++ b/docs/document/v2/android/releasenote.md @@ -236,7 +236,7 @@ - [IM SDK] 新增群组详情中群组禁用状态:[EMGroup#isDisabled()](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_group.html#acd072d7fc16e6ff89110173979ed318b) 属性,该属性需要开发者在服务端设置; - [IM SDK] 优化遇到连接问题时更新接入点的策略,增强可用性; -- [IM SDK] [发送前回调](/document/server-side/callback.html#_1、发送前回调):发送失败时返回给 app 用户的错误描述中增加你自定义的错误信息(即 [响应体参数](/document/server-side/callback.html#响应体参数) code 信息)。 +- [IM SDK] [发送前回调](/document/v2/server-side/callback.html#_1、发送前回调):发送失败时返回给 app 用户的错误描述中增加你自定义的错误信息(即 [响应体参数](/document/v2/server-side/callback.html#响应体参数) code 信息)。 - [IM SDK] 在 [EMError](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1_e_m_error.html) 中新增错误码 1101:[EMError#PRESENCE_CANNOT_SUBSCRIBE_YOURSELF](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1_e_m_error.html#abc9130b164d5cccb3559585ec38e8e99),用来提示用户不能订阅自己的在线状态。 ### 优化: @@ -287,7 +287,6 @@ ### 新增特性: - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应; -- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核。 ### 优化: @@ -302,7 +301,6 @@ ### 修复: - [IM SDK] 修复 Google Play 上架时报的加密算法问题; -- [IM SDK] 修复 Translation API 失效的问题。 ## 版本 V3.9.1.1 2022-4-27 @@ -312,9 +310,6 @@ ## 版本 V3.9.1 2022-4-19 -:::tip -仅 V3.9.1 及以下版本支持私有化部署。 -::: ### 新增特性 @@ -335,7 +330,7 @@ ### 新增特性 - [IM SDK] [EaseIMKIt] 增加 [单向删除服务端会话 API](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_chat_manager.html#a345e81b9caf2658c8796855fe63fe752); -- [IM SDK] Push 平台增加推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,见 [Android 推送集成](https://docs-im.easemob.com/push/apppush/androidsdk); +- [IM SDK] Push 平台增加推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,见 [Android 推送集成](/push/push_integration_note_android.html); - [IM SDK] 增加非好友不能发送消息错误码 [221 USER_NOT_ON_ROSTER]; - [IM SDK] [EaseIMKIt] 增加通过 REST 接口撤回消息功能。 @@ -359,7 +354,6 @@ ### 新增 -- [IM SDK] 增加翻译功能 API; - [IM SDK] 位置消息增加建筑物名称字段; - [IM SDK] 增加按照时间删除消息的 API; - [IM SDK] 增加获取会话中消息总数的 API; @@ -1071,7 +1065,7 @@ EaseUI: 新功能: 1. 增加是否使用 FCM 推送的接口 通过`EMOptions`的`setUserFCM()`方法设置 -2. 添加语音会议功能 [多人音视频会议](https://docs-im.easemob.com/im/android/basics/multiuserconference) +2. 添加语音会议功能 [多人音视频会议](/private/media/conference_android.html) 修复: @@ -1112,7 +1106,7 @@ EaseUI: 2. 使用外接音频输入源进行音视频通话时,设置音频源 3. 提供是否自己处理附件的上传和下载设置项 4. 提供是否自动下载附件类消息附件设置项(缩略图,语音文件) -5. 多人音视频会议功能,详细参考集成文档 [多人音视频会议](https://docs-im.easemob.com/im/android/basics/multiuserconference) +5. 多人音视频会议功能,详细参考集成文档 [多人音视频会议](/private/media/conference_android.html) 优化: diff --git a/docs/document/v2/android/room_attributes.md b/docs/document/v2/android/room_attributes.md index b520bc5c6..cda748a5b 100644 --- a/docs/document/v2/android/room_attributes.md +++ b/docs/document/v2/android/room_attributes.md @@ -19,9 +19,8 @@ 开始前,请确保满足以下条件: -- 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html); -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/room_manage.md b/docs/document/v2/android/room_manage.md index ce40ceb80..5f1f61f8c 100644 --- a/docs/document/v2/android/room_manage.md +++ b/docs/document/v2/android/room_manage.md @@ -25,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。 ## 实现方法 @@ -36,9 +35,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/android/room_members.md b/docs/document/v2/android/room_members.md index 8f5bdffe0..e16f72e57 100644 --- a/docs/document/v2/android/room_members.md +++ b/docs/document/v2/android/room_members.md @@ -21,8 +21,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/android/room_overview.md b/docs/document/v2/android/room_overview.md index 1635b9905..f8a78fc2b 100644 --- a/docs/document/v2/android/room_overview.md +++ b/docs/document/v2/android/room_overview.md @@ -6,7 +6,7 @@ 聊天室是支持多人加入的类似 Twitch 的组织,聊天室中的成员没有固定关系,一旦离线后,不会收到聊天室中的任何消息,超过 2 分钟会自动退出聊天室。聊天室可以应用于直播、消息广播等。若需调整该时间,需联系环信商务经理。 -聊天室的使用限制视不同套餐版本而定,请参见 [使用限制](/product/limitation.html)。 +聊天室的使用限制请参见 [使用限制](/document/v2/privatization/uc_limitation.html)。 本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 。 @@ -32,7 +32,7 @@ | 功能 | 描述 | | :------------- | :----------------------------------------------------------- | -| 创建聊天室 | 只有被赋予 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 | +| 创建聊天室 | 只有被赋予 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 | | 加入聊天室 | 没有被加入黑名单的所有 app 用户可自由加入聊天室。 | | 离开聊天室 | 所有聊天室成员都可以自由退出聊天室;也可能被动离开聊天室,原因分为:被管理员移出聊天室、聊天室解散和用户账号离线。 | | 销毁聊天室 | 需要聊天室所有者权限。 | diff --git a/docs/document/v2/android/thread.md b/docs/document/v2/android/thread.md index 1dab017f1..f4d9bea6b 100644 --- a/docs/document/v2/android/thread.md +++ b/docs/document/v2/android/thread.md @@ -6,9 +6,6 @@ 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -28,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 3.9.3 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/android/thread_message.md b/docs/document/v2/android/thread_message.md index 8feb4358a..4c670ab91 100644 --- a/docs/document/v2/android/thread_message.md +++ b/docs/document/v2/android/thread_message.md @@ -31,8 +31,8 @@ - 已集成环信 IM 3.9.3 或以上版本的基本功能,账户登录成功。 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/android/user_relationship.md b/docs/document/v2/android/user_relationship.md index 5b72c3e38..bd798f83b 100644 --- a/docs/document/v2/android/user_relationship.md +++ b/docs/document/v2/android/user_relationship.md @@ -28,8 +28,8 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: -- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/android/userprofile.md b/docs/document/v2/android/userprofile.md index 902df1dad..fdb2c78f5 100644 --- a/docs/document/v2/android/userprofile.md +++ b/docs/document/v2/android/userprofile.md @@ -28,7 +28,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -73,7 +73,7 @@ EMClient.getInstance().userInfoManager().updateOwnInfoByAttribute(EMUserInfoType }); ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | :---------- | :----- | :------------------------------------------------------------------------------------------------ | @@ -145,7 +145,7 @@ EMClient.getInstance().chatManager().sendMessage(message); 如果需要在名片中展示更丰富的信息,可以在 `ext` 中增加更多字段。 -可参考 [示例项目](https://www.easemob.com/download/im) 中的以下类: +可参考 Demo 中的以下类: - `ChatUserCardAdapterDelegate` - `ChatUserCardAdapterDelegate` diff --git a/docs/document/v2/applet/alipay.md b/docs/document/v2/applet/alipay.md index f8e2a1e96..56854ac12 100644 --- a/docs/document/v2/applet/alipay.md +++ b/docs/document/v2/applet/alipay.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ### 搭建支付宝小程序开发环境 @@ -14,8 +14,8 @@ 小程序在发布前,需要配置合法域名。 -登录 [支付宝开放平台](https://open.alipay.com/platform/home.htm), 配置以下服务器域名。 - +登录 [支付宝开放平台](https://open.alipay.com/platform/home.htm), 按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。 + ### 说明 支付宝小程序:支付宝小程序在一段时间内只能保留一个 WebSocket 连接,如果当前已存在 WebSocket 连接,那么会自动关闭该连接,并重新创建一个新的 WebSocket 连接。 @@ -41,8 +41,8 @@ wss://im-api-alipay.easemob.com/websocket 可以通过以下两种方式获取 SDK: -- 通过官网[下载 SDK](https://www.easemob.com/download/im) -- 从环信的[github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件 + +- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件 #### 引入 SDK diff --git a/docs/document/v2/applet/baidu.md b/docs/document/v2/applet/baidu.md index 6c8c362ea..4f08c5541 100644 --- a/docs/document/v2/applet/baidu.md +++ b/docs/document/v2/applet/baidu.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ### 搭建百度小程序开发环境 @@ -14,8 +14,8 @@ 小程序在发布前,需要配置合法域名。 -登录 [百度智能小程序官网](https://smartprogram.baidu.com/),在开发设置页面配置以下服务器域名。 - +登录 [百度智能小程序官网](https://smartprogram.baidu.com/),在开发设置页面配置按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。。 + ### 说明 百度小程序注册主体不能为个人,必须为企业、媒体、政府等。 @@ -60,8 +60,8 @@ socket 合法域名: 可以通过以下两种方式获取 SDK: -- 通过官网 [下载 SDK](https://www.easemob.com/download/im) -- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件 + +- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件 #### 引入 SDK diff --git a/docs/document/v2/applet/bytedance.md b/docs/document/v2/applet/bytedance.md index 5f10d4c59..f45f2dfb0 100644 --- a/docs/document/v2/applet/bytedance.md +++ b/docs/document/v2/applet/bytedance.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ### 搭建字节跳动小程序开发环境 @@ -14,8 +14,8 @@ 小程序在发布前,需要配置合法域名。 -登录字节跳动小程序 [开发者平台](https://microapp.bytedance.com/),选择当前小程序(如果没有需要创建一个小程序),进入 “开发管理>开发设置” 页面配置以下服务器地址。 - +登录字节跳动小程序 [开发者平台](https://microapp.bytedance.com/),选择当前小程序(如果没有需要创建一个小程序),进入 “开发管理>开发设置” 页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。 + ### 集成 SDK #### 下载 SDK 可以通过以下两种方式获取 SDK: -- 通过官网 [下载 SDK](https://www.easemob.com/download/im) -- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件 + +- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件 #### 引入 SDK diff --git a/docs/document/v2/applet/initialization.md b/docs/document/v2/applet/initialization.md index 3934058b8..439734734 100644 --- a/docs/document/v2/applet/initialization.md +++ b/docs/document/v2/applet/initialization.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 引入 SDK @@ -55,15 +55,15 @@ const conn = new EC.connection({ ### 控制台注册 -登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择**即时通讯** > **运营服务** > **用户管理**,创建 IM 用户。 +登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择**运营服务** > **用户管理**,创建 IM 用户。 ### REST API 注册 -请参考 [注册用户](/document/server-side/account_system.html#注册用户)。 +请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ### SDK 注册 -若支持 SDK 注册,需登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **应用概览** > **应用详情**,将 **应用设置**下的 **用户注册模式** 设置为 **开放注册**。 ```javascript conn @@ -87,7 +87,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录: - 用户 ID + 密码 - 用户 ID + token -登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -109,7 +109,7 @@ conn }); ``` -**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/product/easemob_user_token.html)。 +**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/applet/message_send_receive.md b/docs/document/v2/applet/message_send_receive.md index 5760c5aae..55cd1db7b 100644 --- a/docs/document/v2/applet/message_send_receive.md +++ b/docs/document/v2/applet/message_send_receive.md @@ -38,7 +38,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -160,7 +160,7 @@ WebIM.conn.addEventHandler("eventName", { ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```javascript let option = { diff --git a/docs/document/v2/applet/overview.md b/docs/document/v2/applet/overview.md index d30df01c2..e0b97d066 100644 --- a/docs/document/v2/applet/overview.md +++ b/docs/document/v2/applet/overview.md @@ -8,6 +8,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动、uni-app 编译的原生 Android 以及 iOS。 ::: + ## 功能说明 环信小程序 Web IM 在微信生态系统进行优化,功能与微信对接更为流畅: diff --git a/docs/document/v2/applet/qq.md b/docs/document/v2/applet/qq.md index be8c7b2d5..34a4b744e 100644 --- a/docs/document/v2/applet/qq.md +++ b/docs/document/v2/applet/qq.md @@ -6,7 +6,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ## 实现步骤 @@ -18,8 +18,8 @@ 小程序在发布前,需要配置合法域名。 -登录 QQ 小程序 [开发者平台](https://q.qq.com/),进入 “开发 > 开发设置” 页面配置以下服务器地址。 - +登录 QQ 小程序 [开发者平台](https://q.qq.com/),进入 “开发 > 开发设置” 页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。 + ### 说明 QQ、微信小程序: 1.7.0 及以上版本,最多可以同时存在 5 个 WebSocket 连接,需开发者控制好连接数量,超出此限制 SDK 将不能连接上服务器。 @@ -64,8 +64,8 @@ QQ、微信小程序: 1.7.0 及以上版本,最多可以同时存在 5 个 W 可以通过以下两种方式获取 SDK: -- 通过官网 [下载 SDK](https://www.easemob.com/download/im) -- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件 + +- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件 #### 引入 SDK diff --git a/docs/document/v2/applet/releasenote.md b/docs/document/v2/applet/releasenote.md index 7927ddbe9..3e8dab1c8 100644 --- a/docs/document/v2/applet/releasenote.md +++ b/docs/document/v2/applet/releasenote.md @@ -100,19 +100,19 @@ ### 新增特性 - [IM SDK] 新增群组事件回调 [onGroupEvent](https://docs-im-beta.easemob.com/jsdoc/interfaces/Types.EventHandlerType.EventHandlerType.html#onGroupEvent) 和聊天室事件回调 [onChatroomEvent](https://docs-im-beta.easemob.com/jsdoc/interfaces/Types.EventHandlerType.EventHandlerType.html#onChatroomEvent)。原回调可继续使用; -- [IM SDK] 新增群聊消息限流错误码 [MESSAGE_CURRENT_LIMITING](/document/web/error.html) +- [IM SDK] 新增群聊消息限流错误码 [MESSAGE_CURRENT_LIMITING](/document/v2/web/error.html) - [IM SDK] 邀请加入群聊回调 `onGroupChange` 返回中新增 群名称 参数值。 ### 优化 -- [IM SDK] 支持批量查询群组详情 [getGroupInfo](/document/web/group_manage.html#获取群组详情信息)。 +- [IM SDK] 支持批量查询群组详情 [getGroupInfo](/document/v2/web/group_manage.html#获取群组详情信息)。 ## 版本 V4.0.7 2022-5-25 ### 新增特性: - [IM SDK] 新增消息子区(message thread)功能; -- [IM SDK] 新增 [getConversationList](/document/web/message_retrieve.html) 方法解析会话中的最新一条消息; +- [IM SDK] 新增 [getConversationList](/document/v2/web/message_retrieve.html) 方法解析会话中的最新一条消息; ### 优化: @@ -138,14 +138,10 @@ ## 版本 V4.0.4 2022-4-19 -:::tip -仅 V4.0.4 及以下版本支持私有化部署。 -::: - ### 新增特性: - [IM SDK] 增加用户在线状态(Presence)订阅功能。 -- [IM SDK] 增加自动翻译接口。除了按需翻译,IM 实现自动翻译。 + ### 优化: diff --git a/docs/document/v2/applet/serverconfig.md b/docs/document/v2/applet/serverconfig.md index c17507370..540535ff5 100644 --- a/docs/document/v2/applet/serverconfig.md +++ b/docs/document/v2/applet/serverconfig.md @@ -25,13 +25,12 @@ ![img](@static/images/applet/config5.png) -7. 登陆环信后台获取 socket 域名,进入即时通讯-服务概览页,即可看到如图的域名展示。 +7. 按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。。 :::notice 字节跳动小程序、QQ 小程序、百度小程序、uniapp 全平台等同微信小程序的域名一致,使用微信小程序栏的域名即可。 ::: -![img](@static/images/applet/config6.png) 8. 填写完域名信息之后,点击下面 “保存并提及” 按钮即可设置完成。 diff --git a/docs/document/v2/applet/uniapp.md b/docs/document/v2/applet/uniapp.md index 668e372bf..c7212af39 100644 --- a/docs/document/v2/applet/uniapp.md +++ b/docs/document/v2/applet/uniapp.md @@ -17,7 +17,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1 :::notice - 小程序 Demo 只包含部分 IM 功能,详细参考 **功能说明**。 -- Uni-app Demo Git 源码地址 [https://github.com/easemob/webim-uniapp-demo](https://github.com/easemob/webim-uniapp-demo) +- 下载Uni-app Demo 源码地址 [立即下载](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip) ::: ## 功能说明 @@ -32,7 +32,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1 ### 集成前准备 -[注册并创建应用](/product/enable_and_configure_IM.html#创建应用) +[注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用) ### 搭建开发环境 @@ -45,6 +45,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1 ### 配置服务器域名(以微信为例) + +登录 [微信公众平台](https://mp.weixin.qq.com/),进入 “开发 > 开发设置” 页面,按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。 + ### 各端小程序 WebSocket 连接数量 - QQ、微信小程序: `**1.7.0**` 及以上版本,最多可以同时存在 **5** 个 WebSocket 连接 @@ -103,7 +104,7 @@ socket 合法域名: 可以通过以下方式获取 SDK: -- 从环信的 [github 仓库](https://github.com/easemob/webim-uniapp-demo/tree/master/newSDK) 中获取 SDK 中的文件,从 3.3.1 开始支持 uniapp。 +- 从环信的 [Demo包](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip) 中获取 SDK 中的文件,从 3.3.1 开始支持 uniapp。 #### 引入 SDK diff --git a/docs/document/v2/applet/uniappnativeapp.md b/docs/document/v2/applet/uniappnativeapp.md index a97da9d39..4247ac5ce 100644 --- a/docs/document/v2/applet/uniappnativeapp.md +++ b/docs/document/v2/applet/uniappnativeapp.md @@ -6,14 +6,9 @@ ## 体验 IM 应用 -- 安卓: [https://www.pgyer.com/h4XF](https://www.pgyer.com/h4XF) -- iOS: [https://www.pgyer.com/9ISC](https://www.pgyer.com/9ISC) +- 小程序 Demo 只包含部分 IM 功能,详细参考 **功能说明**。 +- 下载Uni-app Demo 源码地址 [立即下载](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip) -:::notice - -- Demo 只包含部分 IM 功能,详细参考 **功能说明** -- Uni-app Demo Git 源码地址 [https://github.com/easemob/webim-uniapp-demo](https://github.com/easemob/webim-uniapp-demo) - ::: ## 功能说明 @@ -24,7 +19,7 @@ ## 开发者集成 -[注册并创建应用](/product/enable_and_configure_IM.html#创建应用) +[注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用) ### 搭建 app 开发环境 @@ -82,7 +77,7 @@ WebIM.conn = new WebIM.connection({ }); ``` -IM 基本功能,请参考 [消息管理](/document/web/message_overview.html)。 +IM 基本功能,请参考 [消息管理](/document/v2/web/message_overview.html)。 ## 打包发布 diff --git a/docs/document/v2/applet/wechat.md b/docs/document/v2/applet/wechat.md index 7edbd9b61..2f2eb9e50 100644 --- a/docs/document/v2/applet/wechat.md +++ b/docs/document/v2/applet/wechat.md @@ -4,7 +4,7 @@ ### 注册环信账号 -开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 +开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。 ### 搭建微信小程序开发环境 @@ -14,8 +14,8 @@ 小程序在发布前,需要配置合法域名。 -登录[微信公众平台](https://mp.weixin.qq.com/), 在开发设置页面配置以下服务器域名。 - +登录[微信公众平台](https://mp.weixin.qq.com/), 在开发设置页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。 + ### 集成 SDK #### 下载 SDK 可以通过以下两种方式获取 SDK: -- 通过官网 [下载 SDK](https://www.easemob.com/download/im) -- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件 + +- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件 #### 引入 SDK diff --git a/docs/document/v2/electron/appendix.md b/docs/document/v2/electron/appendix.md new file mode 100644 index 000000000..08097e268 --- /dev/null +++ b/docs/document/v2/electron/appendix.md @@ -0,0 +1,53 @@ +# 附录 + +文档中用到的结构体定义 + +``` +Result +{ + code, //{Number} 0表示成功,其它值为失败 + description //{String} code为非0值时,表示失败原因 +} +ContactListResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{StringArray} 用户ID数组,code为0时有效,["ID1","ID2"] +} +GroupResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{StringArray} EMGroup对象,code为0时有效 +} +GroupListResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{Array} EMGroup对象数组,code为0时有效 +} +SharedFileResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{Object} EMMucSharedFile,code为0时有效 +} +SharedFileListResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{Array} EMMucSharedFile对象数组,code为0时有效 +} +AnnouncementResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{String} 群组公告内容,code为0时有效 +} +MessageListResult +{ + code:result.errorCode, //{Number} 0表示成功,其它值为失败 + description:result.description, //{String} code为非0值时有效,表示失败原因 + data //{Array} EMMessage对象数组,code为0时有效 +} +``` \ No newline at end of file diff --git a/docs/document/v2/electron/chatmanage.md b/docs/document/v2/electron/chatmanage.md new file mode 100644 index 000000000..cc5152285 --- /dev/null +++ b/docs/document/v2/electron/chatmanage.md @@ -0,0 +1,458 @@ +# 会话管理 + +环信桌面端 SDK 支持会话管理的集成,集成后可以进行如下操作: + +- 会话处理 + +- 获取消息 + +- 消息处理 + +通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。 + +会话管理模块为 EMChatManager,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getChatManager 方法获取,代码如下: + +``` +var chatManager = emclient.getChatManager(); +``` + +------ + +## 会话处理 + +会话处理包含以下处理操作: + +- 获取会话列表 + +- 根据 ID 获取会话 + +- 删除会话 + +- 获取会话属性 + +- 会话属性扩展 + +所有处理操作的示例下面会一一说明。 + +------ + +### 获取会话列表 + +接口 API 如下: + +``` +/** + * 获取会话列表 + * return 返回会话列表,EMConversation 数组 + */ +getConversations() +``` + +调用方法如下: + +``` +var convlist = chatManager.getConversations(); +``` + +------ + +### 根据 ID 获取会话 + +根据会话 ID 获取会话,接口 API 如下: + +``` +/** + * 获取会话 + * param conversationId 会话 ID,输入参数,String + * param type 会话类型,输入参数,0为单聊,1为群聊 + * return 会话,EMConversation + */ +conversationWithType(conversationId,type) +``` + +调用方法如下: + +``` +let conversationlist = chatManager.conversationWithType(conversationId,type); +``` + +------ + +### 删除会话 + +接口 API 如下: + +``` +/** 根据 ID 删除会话 + * param conversationId 会话 ID,输入参数 + * param isRemoveMessages 是否删除消息,ture 为删除 + */ +removeConversation(conversationId,isRemoveMessages) +``` + +调用方法如下: + +``` +chatManager.removeConversation(conversationId,true); +``` + +------ + +### 获取会话属性 + +``` +// 获取会话 ID +console.log("conversationId" + conversation.conversationId()); +// 获取会话类型,0为单聊,1为群聊 +console.log("conversationType" + conversation.conversationType()); +``` + +------ + +### 会话扩展属性 + +接口 API 如下: + +``` +/** + * 设置会话扩展属性 + * param ext 扩展属性,String + */ +setExtField(strAttr) +/** + * 获取会话扩展属性 + * return 扩展属性,String + */ +extField() +``` + +调用方法如下: + +``` +conversation.setExtField(ext); +var strAttr = conversation.extField(); +``` + +------ + +## 获取消息 + +获取消息包含以下处理操作: + +- 获取历史消息 + +- 根据 ID 获取当前会话消息 + +- 获取会话中的消息计数 + +- 获取会话中的未读消息计数 + +- 获取最新消息 + +所有处理操作的示例下面会一一说明。 + +------ + +### 获取历史消息 + +接口 API 如下: + +``` +/** + * 分页获取历史消息,从服务器获取 + * param conversationId 会话 ID,输入参数 + * param type 会话类型,1为群组,0为单聊 + * param pageSize 每页的消息计数 + * param startMsgId 起始消息 ID + * return 返回 Promise 对象,response 参数为 MessageListResult + */ +chatManager.fetchHistoryMessages(conversationId, type, pageSize, startMsgId) +``` + +调用方法如下: + +``` +chatManager.fetchHistoryMessages(conversationId, type, pageSize, startMsgId).then((res) => {},(error) => {}); +``` + +------ + +### 根据 ID 获取当前会话消息 + +根据消息 ID 获取当前会话消息,接口 API 如下: + +``` +/** + * 根据消息 ID 获取消息 + * param msgid 消息 ID + * return 未读消息计数 + */ +loadMessage(msgid) +``` + +调用方法如下: + +``` +var msg = conversation.loadMessage(msgid); +``` + +------ + +### 获取会话中的消息计数 + +接口 API 如下: + +``` +/** + * 获取会话中的消息计数 + * return 消息计数,Number + */ +messagesCount() +``` + +调用方法如下: + +``` +var msgCount = conversation.messagesCount(); +``` + +------ + +### 获取会话中的未读消息计数 + +接口 API 如下: + +``` +/** + * 获取会话中的未读消息计数 + * return 未读消息计数,Number + */ +unreadMessagesCount() +``` + +调用方法如下: + +``` +var unreaddMsgCount = conversation.unreadMessagesCount(); +``` + +------ + +### 获取最新一条消息 + +接口 API 如下: + +``` +/** + * 获取会话中的最新一条消息 + * return EMMessage 消息对象 + */ +latestMessage() +``` + +调用方法如下: + +``` +var msg = conversation.latestMessage(); +``` + +------ + +## 消息处理 + +消息处理包含以下处理操作: + +- 插入消息 + +- 添加消息 + +- 修改消息 + +- 加载会话消息 + +- 删除会话消息 + +- 清空会话消息 + +- 下载图片、附件 + +- 设置消息已读状态 + +所有处理操作的示例下面会一一说明。 + +------ + +### 插入消息 + +接口 API 如下: + +``` +/** + * 不发送消息,只是插入到本地,按照时间插入到本地数据库 + * param messagelist 要插入的消息列表,EMMessage 数组 + * return 返回操作结果,Bool +*/ +insertMessages(messagelist); +``` + +调用方法如下: + +``` +chatManager.insertMessages(messagelist); +``` + +------ + +### 添加消息 + +接口 API 如下: + +``` +/** + * 在末尾添加一条消息 + * param message 要插入的消息,EMMessage 对象 + * return 返回操作结果,Bool +*/ +appendMessage(message); +``` + +调用方法如下: + +``` +chatManager.appendMessage(message); +``` + +------ + +### 修改消息 + +接口 API 如下: + +``` +/** + * 修改一条消息,不能改变消息 ID + * param message 要插入的消息,EMMessage 对象 + * return 返回操作结果,Bool +*/ +updateMessage(message); +``` + +调用方法如下: + +``` +chatManager.updateMessage(message); +``` + +------ + +### 加载会话消息 + +接口 API 如下: + +``` +/** + * 按照 ID 加载会话消息 + * param refMsgId 起始消息 ID,输入参数,空为最新消息,String + * param count 加载的消息数,输入参数,Number + * param direction 消息加载方向填0 + * return 返回为 EMMessage 数组 + */ +loadMoreMessagesByMsgId(refMsgId, count, direction); + +/** + * 按照时间加载会话消息 + * param timeStamp 起始消息时间,输入参数 + * param count 加载的消息数,输入参数 + * param direction 消息加载方向,填0 + * return 返回EMMessage数组 + */ +conversation.loadMoreMessagesByTime(timeStamp, count, direction); +``` + +调用方法如下: + +``` +conversation.loadMoreMessagesByMsgId("", 20,0); +conversation.loadMoreMessagesByTime(timeStamp, 20,0); +``` + +------ + +### 删除会话消息 + +接口 API 如下: + +``` +/** + * 按照 ID 移除会话消息,只操作缓存和本地数据库 + * param messageId 要删除的消息 ID + * return 返回操作结果,bool 型 + */ +removeMessage(messageId) +``` + +调用方法如下: + +``` +conversation.removeMessage(messageId).then((res)=>{},(error) => {}); +``` + +------ + +### 清空会话消息 + +接口 API 如下: + +``` +/** + * 清空会话消息,只操作缓存和本地数据库 + * return 返回操作结果,bool 型 + */ +clearAllMessages() +``` + +调用方法如下: + +``` +conversation.clearAllMessages(); +``` + +------ + +### 下载图片、附件 + +``` +// 下载附件消息,message 为 EMMessage 对象,可在 message 中设置回调 +chatManager.downloadMessageAttachments(message); +// 下载图片缩略,message 为 EMMessage 对象,可在 message 中设置回调 +chatManager.downloadMessageThumbnail(message); +``` + +------ + +### 设置消息已读状态 + +接口 API 如下: + +``` +/** + * 根据消息 ID 标记消息已读状态 + * param msgid,消息 ID + * isread bool,已读状态 + * return 返回操作结果,bool 型 + */ +markMessageAsRead(msgid,isread); +/** + * 标记会话中所有消息的已读状态 + * isread bool,已读状态 + * return 返回操作结果,bool 型 + */ +markAllMessagesAsRead(isread); +``` + +调用方法如下: + +``` +conversation.markMessageAsRead(msgid,isread); +conversation.markAllMessagesAsRead(isread); +``` \ No newline at end of file diff --git a/docs/document/v2/electron/demo.md b/docs/document/v2/electron/demo.md new file mode 100644 index 000000000..e5a62b9d7 --- /dev/null +++ b/docs/document/v2/electron/demo.md @@ -0,0 +1,6 @@ +# Demo 下载体验 + + +- [Windows Demo](https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/DesktopDemo.3.8.4.win.setup.exe) +- [Mac Demo](https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/DesktopDemo.3.8.4.mac.dmg) +- [Demo 源码](https://github.com/easemob/sdkdemoapp_windows/tree/electron) \ No newline at end of file diff --git a/docs/document/v2/electron/group_manage.md b/docs/document/v2/electron/group_manage.md new file mode 100644 index 000000000..475423c5d --- /dev/null +++ b/docs/document/v2/electron/group_manage.md @@ -0,0 +1,1018 @@ +# 群组管理 + +环信桌面端 SDK 支持群组功能的集成,集成后可以进行如下操作: + +- 获取群组 + +- 群组管理 + +- 群成员管理 + +- 加群处理 + +- 群消息 + +- 群文件 + +- 群组变更的监听 + +通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。 + +群组管理模块为 EMGroupManager ,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getGroupManager 方法获取,代码如下 + +``` +var groupManager = emclient.getGroupManager(); +``` + +------ + +## 获取群组 + +获取群组包含以下处理操作: + +- 本地获取群组 + +- 服务器获取群组 + +- ID 获取群组 + +- 获取群组信息 + +- 获取公开群组 + +- 查找公开群组 + +所有处理操作的示例下面会一一说明。 + +------ + +### 本地获取群组 + +本地获取用户所在的所有群组,接口 API 如下: + +``` +/** + * 本地获取用户所有的组 + * return GroupListResult + */ +allMyGroups() +``` + +调用方法如下: + +``` +let res = groupManager.allMyGroups() +``` + +------ + +### 服务器获取群组 + +服务器获取用户所在的所有群组,接口 API 如下: + +``` +/** + * 服务器获取用户所有的组 + * return 返回 Promise 对象,response 参数为 GroupListResult + */ +fetchAllMyGroups() +``` + +调用方法如下: + +``` +groupManager.fetchAllMyGroups().then((res)=>{},(error) => {}); +``` + +------ + +### ID 获取群组 + +根据 ID 获取群组 + +``` +let group = groupManager.groupWithId(groupId); +``` + +------ + +### 获取群组信息 + +``` +// 获取组 ID +console.log("group.groupId" + group.groupId()); +// 获取组名 +console.log("group.groupSubject" + group.groupSubject()); +// 获取组描述 +console.log("group.groupDescription" + group.groupDescription()); +// 获取群主 +console.log("group.groupOwner" + group.groupOwner()); +// 获取成员计数 +console.log("group.groupMembersCount" + group.groupMembersCount()); +// 获取群设置类型 +console.log("group.groupMemberType" + group.groupMemberType()); +// 获取群成员 +console.log("members:"+group.groupMembers().join(' || ')); +// 获取群设置对象 +var set = group.groupSetting(); +console.log("set.style() = " + set.style()); +console.log("set.maxUserCount() = " + set.maxUserCount()); +console.log("set.extension() = " + set.extension()); +``` + +------ + +### 获取公开群组 + +接口 API 如下: + +``` +/** + * 分页获取公开群组 + * param pageNum 第几页,输入参数,Number,0表示不分页,获取所有公开组,1为分页起始 + * param pageSize 每页计数,输入参数,Number,最大200 + * return 返回 Promise 对象,response 参数为 GroupListResult + */ +fetchPublicGroupsWithPage(pageNum, pageSize); +``` + +调用方法如下: + +``` +groupManager.fetchPublicGroupsWithPage(1,20).then((res) => { + },(error) => {}) +``` + +------ + +### 查找公开群组 + +接口 API 如下: + +``` +/** + * 根据群 ID 查找公开群 + * param1 groupId 群组 ID,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +searchPublicGroup(groupId); +``` + +调用方法如下: + +``` +groupManager.searchPublicGroup(groupId).then((res) => { + },(error) => {}) +``` + +------ + +## 群组管理 + +群组管理包含以下处理操作: + +- 创建群组 + +- 解散群组 + +- 退出群组 + +- 转移群组 + +- 修改群信息 + +- 群组公告管理 + +所有处理操作的示例下面会一一说明。 + +------ + +### 创建群组 + +创建群组时,需要先实例化一个群组设置对象,然后创建群组。实例化群组设置接口 API 如下: + +``` +/** + * 实例化区群组设置 + * param style 组类型, Number ,0为私有群,只有群主可以邀请成员加入,1为私有群,成员也可以邀请成员加入,2为公开群,但申请入群需要群主同意,3为公开群,成员可以随意申请加入 + * param maxUserCount 最大成员数, Number ,最大200 + * param inviteNeedConfirm 邀请是否需要确认,Bool + * param extension 扩展信息,String + * return 返回组设置对象 + */ +EMMucSetting(style, maxUserCount, inviteNeedConfirm, extension) +``` + +调用方法如下: + +``` +var setting = new easemob.EMMucSetting(1, 20, false, "test"); +``` + +创建群组接口 API 如下: + +``` +/** + * 创建群组 api + * param subject 群组名称,输入参数,String + * param description 群组描述,输入参数,String + * param welcomeMessage 欢迎信息,输入参数,String + * param setting 群组设置,输入参数,Object + * param members 群组初始成员,输入参数,StringArray + * return 返回 Promise 对象,response 参数为 GroupResult + */ +createGroup(subject, description, welcomeMessage, setting, members) +``` + +调用方法如下: + +``` +groupManager.createGroup("subject","description","welcome message",setting,["jwfan1", "jwfan2"]).then((res) => {},(error) => {}) +``` + +------ + +### 解散群组 + +接口 API 如下: + +``` +/** + * 解散群组 api + * param groupId 组 ID,输入参数 + * return 返回 Promise 对象,response 参数为 Result + */ +destroyGroup(groupId); +``` + +调用方法如下: + +``` +groupManager.destroyGroup("55139673112577").then((res)=>{},(error) => {}) +``` + +------ + +### 退出群组 + +接口 API 如下: + +``` +/** + * 成员主动退出群组 + * param groupId 群组 ID,输入参数,String + * 返回 Promise 对象,response 参数为 Result + */ +leaveGroup(groupId) +``` + +调用方法如下: + +``` +groupManager.leaveGroup(groupId).then((res)=>{},(error) => {}) +``` + +------ + +### 转移群组 + +接口 API 如下: + +``` +/** + * 转移群主,只有群主能操作 + * param groupId 群组ID,输入参数,String + * param member 新群主用户名,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +transferGroupOwner(groupId, member) +``` + +调用方法如下: + +``` +groupManager.transferGroupOwner(groupId, member).then((res) =>{},(error) => {}); +``` + +------ + +### 修改群组信息 + +接口 API 如下: + +``` +/** + * 修改群标题 + * param groupId 群组 ID ,输入参数,String + * param newSubject 群组新组名,输入参数,String + * return 返回 Promise对象,response 参数为 GroupResult + */ +groupManager.changeGroupSubject(groupId, newSubject); + + +/** + * 修改群描述 + * param groupId 群组 ID,输入参数,String + * param newDescription 群组新描述,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +changeGroupDescription(groupId, newDescription) +``` + +调用方法如下: + +``` +groupManager.changeGroupSubject(groupId, "new Subject", error).then((res) =>{},(error) => {}); +groupManager.changeGroupDescription(groupId, "new Description", error).then((res) =>{},(error) => {}); +``` + +------ + +### 群组公告管理 + +接口 API 如下: + +``` +/** + * 设置群组公告 + * param groupId 群组 ID,输入参数,String + * param announcement 群组公告,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +updateGroupAnnouncement(groupId, announcement,error) + +/** + * 获取群组公告 + * param groupId 群组 ID,输入参数,String + * return 返回 Promise 对象,response 参数为 AnnouncementResult + */ +fetchGroupAnnouncement(groupId) +``` + +调用方法如下: + +``` +groupManager.fetchGroupAnnouncement(groupId).then((res) =>{},(error) => {}); groupManager.updateGroupAnnouncement(groupId, "new announcement").then((res) =>{},(error) => {}); +``` + +------ + +## 群成员管理 + +群成员管理包含以下处理操作: + +- 群成员邀请 + +- 群成员移除 + +- 添加管理员 + +- 删除管理员 + +- 获取禁言成员列表 + +- 成员禁言 + +- 取消成员禁言 + +- 加入群组黑名单 + +- 从群组黑名单移除 + +所有处理操作的示例下面会一一说明。 + +------ + +### 群成员邀请 + +接口 API 如下: + +``` +/** + * 邀请成员入群,一次可邀请多个成员 + * param groupId 群组 ID,输入参数,String + * param members 邀请的成员,输入参数,StringArray,["ID1","ID2"] + * param welcomeMessage 欢迎信息,输入参数,String + * 返回 Promise 对象,response 参数为 GroupResult + */ +addGroupMembers(groupId, members, welcomeMessage); +``` + +调用方法如下: + +``` +groupManager.addGroupMembers(groupId, ["jwfan3", "jwfan4"], "hahaha").then((res)=>{},(error) => {}) +``` + +------ + +### 群成员移除 + +接口 API 如下: + +``` +/** + * 将成员踢出群,同样可踢出多人 + * param groupId 群组ID,输入参数,String + * param members 踢出的成员,输入参数,StringArray,["ID1","ID2"] + * 返回 Promise 对象,response 参数为 Result + */ +removeGroupMembers(groupId, members, error); +``` + +调用方法如下: + +``` +groupManager.removeGroupMembers(groupId, ["jwfan3", "jwfan4"]).then((res)=>{},(error) => {}) +``` + +------ + +### 添加管理员 + +接口 API 如下: + +``` +/** + * 将普通群成员提升为管理员 + * param groupId 群组 ID,输入参数,String + * param member 成员用户名,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +addGroupAdmin(groupId, member) +``` + +调用方法如下: + +``` +groupManager.addGroupAdmin(groupId, member).then((res) =>{},(error) => {}); +``` + +------ + +### 删除管理员 + +接口 API 如下: + +``` +/** + * 将管理员降级为普通成员 + * param groupId 群组ID,输入参数,String + * param member 管理员用户名,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +removeGroupAdmin(groupId, member) +``` + +调用方法如下: + +``` +groupManager.removeGroupAdmin(groupId, member).then((res) =>{},(error) => {}); +``` + +------ + +### 获取禁言列表 + +接口API如下: + +``` +/** + * 获取禁言列表 + * param groupId 群组 ID,输入参数,String + * param pageNum 第几页,输入参数,Number,1为起始页 + * param pageSize 每页计数,输入参数,Number,最大200 + * return 返回 Promise 对象,response 参数为 GroupResult + */ +fetchGroupMutes(groupId, pageNum, pageSize) +``` + +------ + +### 群组禁言 + +接口API如下: + +``` +/** + * 将成员加入禁言列表,被禁言的成员无法在群组内发消息 + * param {String} groupId 群组ID,输入参数,String + * param {Array} members 成员列表,输入参数,String 数组 + * param {Number} muteDuration 禁言时间,单位毫秒 + * return 返回 Promise 对象,response 参数为 GroupResult + */ +muteGroupMembers(groupId,members,muteDuration) +``` + +------ + +### 取消禁言 + +接口API如下: + +``` +/** + * 将成员从禁言列表移除 + * param {String} groupId 群组ID,输入参数,String + * param {Array} members 成员列表,输入参数,String 数组 + * return 返回 Promise 对象,response 参数为 GroupResult + */ +unmuteGroupMembers(groupId,members) +``` + +------ + +### 获取群组黑名单列表 + +接口 API 如下: + +``` +/** + * 分页获取群组黑名单列表 + * param groupId 群组 ID,输入参数,String + * param pageNum 第几页,输入参数,Number,1为起始页 + * param pageSize 每页计数,输入参数,Number,最大200 + * return 返回 Promise 对象,response 参数为 GroupListResult + */ +fetchGroupBans(groupId,pageNum, pageSize) +``` + +调用方法如下: + +``` +groupManager.fetchGroupBans(groupId, 1, 20).then((res) =>{},(error) => {}); +``` + +------ + +### 加入群组黑名单 + +接口 API 如下: + +``` +/** + * 将成员加入群组黑名单,黑名单中的人员无法加入群组 + * param groupId 群组ID,输入参数,String + * param members 成员列表,输入参数,String 数组 + * param reason 加入黑名单原因,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +blockGroupMembers(groupId,members,reason) +``` + +调用方法如下: + +``` +groupManager.blockGroupMembers(groupId, members, "reason").then((res) =>{},(error) => {}); +``` + +------ + +### 从群组黑名单移除 + +接口 API 如下: + +``` +/** + * 将人员从群组黑名单移除 + * param groupId 群组 ID,输入参数,String + * param members 成员列表,输入参数,StringArray + * return 返回 Promise 对象,response 参数为 GroupResult + */ +unblockGroupMembers(groupId, members) +``` + +调用方法如下: + +``` +groupManager.unblockGroupMembers(groupId, members).then((res) =>{},(error) => {}); +``` + +------ + +## 加群处理 + +加群处理包含以下处理操作: + +- 加入公开群组 + +- 申请加入公开群组 + +- 接受群邀请 + +- 拒绝群邀请 + +- 接受入群申请 + +- 拒绝入群申请 + +所有处理操作的示例下面会一一说明。 + +------ + +### 加入公开群组 + +接口 API 如下: + +``` +/** + * 加入 PUBLIC_JOIN_OPEN 类型公开群组 + * param groupId 群组 ID,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +joinPublicGroup(groupId,error) +``` + +调用方法如下: + +``` +groupManager.joinPublicGroup(groupId,error).then((res) =>{},(error) => {}); +``` + +------ + +### 申请加入公开群组 + +接口 API 如下: + +``` +/** + * 申请加入 applyJoinPublicGroup 类型公开群组,需要群主或管理员同意 + * param groupId 群组 ID,输入参数,String + * param nickname 用户在群内的昵称,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +applyJoinPublicGroup(groupId,nickname,message) +``` + +调用方法如下: + +``` +groupManager.applyJoinPublicGroup(groupId,nickname,message).then((res) =>{},(error) => {}); +``` + +------ + +### 接受群邀请 + +接口 API 如下: + +``` +/** + * 接受群组发来的入群邀请 + * param groupId 群组ID,输入参数,String + * param inviter 邀请人,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +acceptInvitationFromGroup(groupId,inviter) +``` + +调用方法如下: + +``` +groupManager.acceptInvitationFromGroup(groupId,inviter).then((res) =>{},(error) => {}); +``` + +### 拒绝群邀请 + +接口 API 如下: + +``` +/** + * 拒绝群组发来的入群邀请 + * param groupId 群组 ID,输入参数,String + * param inviter 邀请人,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +declineInvitationFromGroup(groupId,inviter) +``` + +调用方法如下: + +``` +groupManager.declineInvitationFromGroup(groupId,inviter).then((res) =>{},(error) => {}); +``` + +------ + +### 接受加入群申请 + +接口 API 如下: + +``` +/** + * 同意成员的入群邀请,由群主操作 + * param groupId 群组ID,输入参数,String + * param from 入群申请人,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +acceptJoinGroupApplication(groupId,from) +``` + +调用方法如下: + +``` +groupManager.acceptJoinGroupApplication(groupId,from).then((res) =>{},(error) => {}); +``` + +------ + +### 拒绝加入群申请 + +接口 API 如下: + +``` +/** + * 拒绝成员的入群邀请,由群主操作 + * param groupId 群组 ID,输入参数,String + * param from 入群申请人,输入参数,String + * param reason 拒绝原因,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +declineJoinGroupApplication(groupId,from,reason) +``` + +调用方法如下: + +``` +groupManager.declineJoinGroupApplication(groupId,from,"decline reason").then((res) =>{},(error) => {}); +``` + +------ + +## 群消息 + +群消息包含以下处理操作: + +- 屏蔽群组消息 + +- 取消屏蔽群组消息 + +所有处理操作的示例下面会一一说明。 + +------ + +### 屏蔽群组消息 + +接口 API 如下: + +``` +/** + * 屏蔽群组消息 + * param groupId 群组ID,输入参数,String + * return 返回 Promise 对象,response 参数为 GroupResult + */ +blockGroupMessage(groupId) +``` + +调用方法如下: + +``` +groupManager.blockGroupMessage(groupId).then((res) =>{},(error) => {}); +``` + +------ + +### 取消屏蔽群组消息 + +接口 API 如下: + +``` +/** + * 取消屏蔽群组消息 + * param groupId 群组 ID,输入参数,String + * return 返回 Promise 对象,response 参数为GroupResult + */ +unblockGroupMessage(groupId) +``` + +调用方法如下: + +``` +groupManager.unblockGroupMessage(groupId).then((res) =>{},(error) => {}); +``` + +------ + +## 群文件 + +群文件包含以下处理操作: + +- 获取群文件列表 + +- 上传群文件 + +- 下载群文件 + +- 删除群文件 + +所有处理操作的示例下面会一一说明。 + +------ + +### 获取群文件列表 + +接口 API 如下: + +``` +/** + * 分页获取群文件列表 + * param groupId 群组ID,输入参数,String + * param pageNum 当前页数,从1开始 + * param pageSize 每页计数,最大200 + * return 返回 Promise 对象,response 参数为 SharedFileListResult + */ +fetchGroupSharedFiles(groupId, pageNum, pageSize) +``` + +调用方法如下: + +``` +groupManager.fetchGroupSharedFiles(groupId, 1, 20).then((res) => {},(error) => {}); +``` + +------ + +### 上传群文件 + +上传群文件过程中,需要使用回调监控上传进度及结果 + +``` +// 设置回调函数显示上传进度和结果 +var emUploadCallback = new easemob.EMCallback(); +console.log("create upload emCallback success"); + +// 上传成功 +emUploadCallback.onSuccess(() => { + console.log("upload emCallback call back success"); + return true; +}); +// 上传失败 +emUploadCallback.onFail((error) => { + console.log("upload emCallback call back fail"); + console.log(error.description); + console.log(error.errorCode); + return true; +}); +// 上传进度 +emUploadCallback.onProgress((progress) => { + if (progress >= 98) { + console.log("upload call back progress " + progress); + } +}); +``` + +接口 API 如下: + +``` +/** + * 上传群文件 + * param groupId 群组 ID,输入参数,String + * param filepath 文件路径,输入参数,String + * param emUploadCallback 设置回调,输入 + * 返回 Promise 对象,response 参数为 SharedFileResult + */ +uploadGroupSharedFile(groupId, filepath, emUploadCallback) +``` + +调用方法如下: + +``` +groupManager.uploadGroupSharedFile(groupId, filepath, emUploadCallback).then((res) => {},(error) => {}); +``` + +------ + +### 下载群文件 + +下载群文件过程中需要使用回调监控下载进度及结果 + +``` +var emDownloadCallback = new easemob.EMCallback(); +console.log("create download emCallback success"); + +// 下载成功 +emDownloadCallback.onSuccess(() => { + console.log("download emCallback call back success"); + return true; +}); +// 下载失败 +emDownloadCallback.onFail((error) => { + console.log("download emCallback call back fail"); + console.log(error.description); + console.log(error.errorCode); + return true; +}); +// 下载进度 +emDownloadCallback.onProgress((progress) => { + if (progress >= 98) { + console.log("download call back progress " + progress); + } +}); +``` + +接口 API 如下: + +``` +/** + * 下载群文件 + * param groupId 群组 ID,输入参数,String + * param filePath 文件本地存储路径,输入参数,String + * param fileId 文件 ID,输入参数,由文件列表数组获取 + * param callback 设置回调,输入 + * return 返回 Promise 对象,response 参数为 GroupResult + */ +downloadGroupSharedFile(groupId, filePath, fileId, callback) +``` + +调用方法如下: + +``` +let fileId = sharedFile.fileId(); +groupManager.downloadGroupSharedFile(groupid, filelocalpath, fileId, emDownloadCallback); +``` + +------ + +### 删除群文件 + +接口 API 如下: + +``` +/** + * 删除群文件 + * param groupId 群组 ID,输入参数,String + * param fileId 文件 ID,输入参数,由文件列表获取 + * return 返回 Promise 对象,response 参数为 GroupResult + */ +deleteGroupSharedFile(groupId, fileId) +``` + +调用方法如下: + +``` +let fileId = sharedFile.fileId(); +groupManager.deleteGroupSharedFile(groupId, fileId).then((res) =>{},(error) => {}); +``` + +------ + +## 群组变更的监听 + +``` +groupManager = emclient.getGroupManager(); +groupListener = new easemob.EMGroupManagerListener(groupManager); +// 添加群管理员时触发(只有是自己时才能收到通知) +// group : 发生操作的群组 +// admin : 被提升的群管理员 +groupListener.onAddAdminFromGroup((groupId, admin) => { + console.log("onAddAdminFromGroup:"+groupId+" admin:"+admin); +}); + +// 删除群管理员时触发(只有是自己时才能收到通知) +// group : 发生操作的群组 +// admin : 被删除的群管理员(群管理员变成普通群成员) +groupListener.onRemoveAdminFromGroup((groupId, admin) => { + console.log("onRemoveAdminFromGroup:"+groupId+" admin:"+admin); +}); + +// 转让群主的时候触发 +// group : 发生操作的群组 +// newOwner : 新群主 +// oldOwner : 原群主 +groupListener.onAssignOwnerFromGroup((groupId, newOwner, oldOwner) => { + console.log("onAssignOwnerFromGroup:"+groupId+" newOwner:"+newOwner + " oldOwner:" + oldOwner); +}); + +// 我接收到自动进群时被触发 +// group : 发生操作的群组 +// inviter : 邀请人 +// inviteMessage : 邀请信息 +groupListener.onAutoAcceptInvitationFromGroup((groupId, inviter, inviteMessage)=>{ + console.log("onAutoAcceptInvitationFromGroup:"+groupId+" inviter:"+inviter + " inviteMessage:" + inviteMessage); + }); + +// 成员加入群组时触发 +// group : 发生操作的群组 +// member : 加入群组的成员名称 +groupListener.onMemberJoinedGroup((groupId, member)=>{ + console.log("onMemberJoinedGroup:"+groupId+" member:"+member); +}); + +// 成员离开群组时触发 +// group : 发生操作的群组 +// member : 离开群组的成员名称 +groupListener.onMemberLeftGroup((groupId, member)=>{ + console.log("onMemberLeftGroup:"+groupId+" member:"+member); +}); + +// 离开群组时触发 +// group : 发生操作的群组 +// reason : 离开群组的原因(0: 被踢出 1:群组解散 2:被服务器下线) +groupListener.onLeaveGroup((groupId, reason)=>{ + console.log("onLeaveGroup:"+groupId+" reason:"+reason); +}); +groupManager.addListener(groupListener); +// 移除监听 +groupManager.removeListener(groupListener); +``` \ No newline at end of file diff --git a/docs/document/v2/electron/message.md b/docs/document/v2/electron/message.md new file mode 100644 index 000000000..c00b2af77 --- /dev/null +++ b/docs/document/v2/electron/message.md @@ -0,0 +1,257 @@ +# 消息管理 + +消息是桌面端集成中最重要的功能之一,消息的使用方法主要为 : + +- 发送消息 + +- 接受消息 + +同时对于发送不超过2分钟的消息,允许主动撤回。 + +通过对消息的集成,您可以最快速的集成体验 IM 收发消息的流畅体验。 + +------ + +## 发送消息 + +发送消息类型主要有以下几种: + +- 文本消息 + +- 文件消息 + +- 图片消息 + +- CMD 消息 +- 自定义 消息 + +- 位置消息 + +通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。 + +发送文本、文件、图片等消息(单聊/群聊通用)。完整的消息发送过程,包括创建消息体,创建消息,设置属性,设置回调,然后发送消息,不同的消息类型只是在创建消息体过程不同,其他步骤一样。 + +------ + +### 发送文本消息 + +``` +/** + * 创建文本消息体 + * param1 文本消息正文,输入参数,String + * return 消息体 EMTextMessageBody + */ +var textMsgBody = new easemob.EMTextMessageBody("wahhahahaha"); +/** + * 创建消息 + * param1 发送者用户名,输入参数 + * param2 目的端,会话 ID,输入参数 + * param3 消息体 EMTextMessageBody + * return 消息 EMMessage + */ +var textSendMsg = easemob.createSendMessage("jwfan", "jwfan1", textMsgBody); +// 消息可以设置扩展属性,用户界面可通过自定义属性,实现自定义等功能 +textSendMsg.setAttribute("data", 120); +data = textSendMsg.getAttribute("data"); +// 设置消息类型,0为单聊,1为群聊,2为聊天室 +textSendMsg.setChatType(0); +// 设置回调 +var emCallback = new easemob.EMCallback(); +emCallback.onSuccess(() => { + console.log("emCallback call back success"); + if(me.cfr){ + console.log(sendMessage); + console.log(sendMessage.msgId()); + return true; + }); + emCallback.onFail((error) => { + console.log("emCallback call back fail"); + console.log(error.description); + console.log(error.errorCode); + return true; + }); + emCallback.onProgress((progress) => { + console.log(progress); + console.log("call back progress"); + }); +sendMessage.setCallback(emCallback); +// 发送消息 +chatManager.sendMessage(textMsg); +``` + +------ + +### 发送文件 + +``` +/** + * 创建文件消息体 + * param1 文件路径,输入参数,String + * return 消息体 EMFileMessageBody + */ +var fileMsgBody = new easemob.EMFileMessageBody("/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/file.txt"); +// 创建消息 +var fileMsg = easemob.createSendMessage("jwfan", "jwfan1", fileMsgBody); +//setCallback(callback) 设置消息回调函数,通过回调函数显示消息发送成功失败,以及附件上传百分比 +//callback easemob.EMCallback的实例,设置onSuccess、onFail和onProgress三个回调函数。 +fileMsg.setCallback(emCallback); +chatManager.sendMessage(fileMsg); +``` + +------ + +### 发送图片 + +``` +/** + * 创建图片消息体 + * param1 图片文件路径,输入参数,String + * param2 图片缩略图路径,输入参数 + * return 消息体EMFileMessageBody + */ +var imageMsgBody = new easemob.EMImageMessageBody('/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/image_960x718.jpg', '/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/thumb_image.jpg'); +var imageMsg = easemob.createSendMessage("jwfan", "jwfan1", imageMsgBody); +imageMsg.setCallback(emCallback); +chatManager.sendMessage(imageMsg); +``` + +------ + +### 发送 CMD 消息 + +``` +var cmdMsgBody = new easemob.EMCmdMessageBody("action"); +console.log("cmdMsgBody.type() = " + cmdMsgBody.type()); + +console.log("cmdMsgBody.action() = " + cmdMsgBody.action()); +cmdMsgBody.setAction("displayName"); +console.log("cmdMsgBody.action() = " + cmdMsgBody.action()); + +var obj1 = {"key" : "1", "value" : "1"}; +var obj2 = {"key" : "2", "value" : "2"}; +console.log("cmdMsgBody.params() = " + cmdMsgBody.params()); +cmdMsgBody.setParams([obj1, obj2]); +var cmdMsg = easemob.createSendMessage("jwfan", "jwfan1", cmdMsgBody); +chatManager.sendMessage(cmdMsg); +``` + +------ + +### 发送 自定义 消息 + +自定义消息包括消息event和消息扩展exts,构造及发送过程如下 + +``` +let customMsgBody = new easemob.EMCustomMessageBody("userCard"); +customMsgBody.setExts({'avatar':'https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/IMDemo/avatar/Image5.png','nickname':'xiaoming','uid':'uid'}); +let customMsg = easemob.createSendMessage('lxm9','lxm',customMsgBody); +chatManager.sendMessage(customMsg); +``` + +------ + +### 位置消息 + +``` +/** + * 创建位置消息体 + * param1 位置经度,输入参数,String + * param2 位置纬度,输入参数 + * param3 地址,输入参数 + * return 消息体EMFileMessageBody + */ +var locationMsgBody = new easemob.EMLocationMessageBody(123.45, 35.67, 'USA'); +console.log("locationMsgBody.type() = " + locationMsgBody.type()); +console.log("locationMsgBody.latitude() = " + locationMsgBody.latitude()); +console.log("locationMsgBody.longitude() = " + locationMsgBody.longitude()); +console.log("locationMsgBody.address() = " + locationMsgBody.address()); +locationMsgBody.setLatitude(87.87); +locationMsgBody.setLongitude(45.45); +locationMsgBody.setAddress('china'); +var locationMsg = easemob.createSendMessage("jwfan", "jwfan1", locationMsgBody); +chatManager.sendMessage(locationMsg); +``` + +------ + +## 撤回消息 + +默认发送两分钟内的消息可以撤回,撤回使用recallMessage接口 + +``` +/** + * 撤回消息 + * param msg {EMMessage} 要撤回的消息 + */ +chatManager.recallMessage(msg); +``` + +------ + +## 接收消息 + +接收消息在会话管理中通过设置回调函数实现,在回调函数中处理 + +``` +// 实例化监听回调,并添加到client +chatManager = emclient.getChatManager(); +listener = new easemob.EMChatManagerListener(); +chatManager.addListener(listener); + +// 收到会话消息 +listener.onReceiveMessages((messages) => { + console.log("onReceiveMessages messages.length = " + messages.length); + for (var index = 0, len = messages.length; index < len; index++) { + var msg = messages[index]; + var bodies = msg.bodies(); + console.log("bodies.length = " + bodies.length); + var body = bodies[0]; + var type = body.type(); + console.log("msg.from() = " + msg.from()); + console.log("msg.to() = " + msg.to()); + console.log("body.type() = " + type); + if (type == 0) { //text message + console.log("body.text() = " + body.text()); + } else if (type == 1) { //image message + console.log("body.displayName() = " + body.displayName()); + console.log("body.localPath() = " + body.localPath()); + chatManager.downloadMessageAttachments(msg); + chatManager.downloadMessageThumbnail(msg); + } else if (type == 5) { //file message + console.log("body.displayName() = " + body.displayName()); + console.log("body.localPath() = " + body.localPath()); + chatManager.downloadMessageAttachments(msg); + } +}); +// 收到命令消息 +listener.onReceiveCmdMessages ((messages) => { + for (var index = 0, len = messages.length; index < len; index++) { + var msg = messages[index]; + var bodies = msg.bodies(); + console.log("bodies.length = " + bodies.length); + var body = bodies[0]; + var type = body.type(); + console.log("msg.from() = " + msg.from()); + console.log("msg.to() = " + msg.to()); + console.log("msg.type() = " + type); + console.log("body.action() = " + body.action()); + var params = cmdMsgBody.params() + console.log("cmdMsgBody.params().length = " + params.length); + if (params.length > 0) { + console.log("cmdMsgBody.params()[0] = " + JSON.stringify(params[0])); + } +} +}); + +// 收到消息撤回 +listener.onReceiveRecallMessages ((message) => { + console.log("onReceiveRecallMessages messages.length = " + messages.length); + for (var index = 0, len = messages.length; index < len; index++) { + var message = messages[index]; + console.log("message.msgId() = " + message.msgId()); + console.log("message.from() = " + message.from()); + console.log("message.to() = " + message.to()); +} +}); +// addListener(listener) 添加消息回调监听,从监听中获取接收消息。 +``` \ No newline at end of file diff --git a/docs/document/v2/electron/multi_device.md b/docs/document/v2/electron/multi_device.md new file mode 100644 index 000000000..9012368e0 --- /dev/null +++ b/docs/document/v2/electron/multi_device.md @@ -0,0 +1,23 @@ +# 多设备管理监听 + +当同一账号同时使用桌面端,移动端登录时,需要使用多设备管理监听事件,使用回调实现 + +``` +// 实例化监听,并添加到客户端 +var listener = new easemob.EMMultiDevicesListener(); +emclient.addMultiDevicesListener(listener); + +// 设置回调 +// 收到其他设备的会话操作 +listener.onContactMultiDevicesEvent((operation, target, ext) => { + console.log('operation = ' + operation); + console.log('target = ' + target); + console.log('ext = ' + ext); +}); +// 收到其他设备的组操作 +listener.onGroupMultiDevicesEvent((operation, target, usernames) => { + console.log('operation = ' + operation); + console.log('target = ' + target); + console.log('usernames = ' + usernames); +}); +``` \ No newline at end of file diff --git a/docs/document/v2/electron/overview.md b/docs/document/v2/electron/overview.md new file mode 100644 index 000000000..800f8b9d6 --- /dev/null +++ b/docs/document/v2/electron/overview.md @@ -0,0 +1,152 @@ +# 集成概述说明 + +桌面端 SDK 为用户在 Windows/Mac OS 平台上进行开发的 js 接口及二进制文件,开发框架使用 electron 。 + +目前支持登录、注册、单聊、群聊、聊天室、文本消息、图片、语音、位置等消息以及透传消息,还可以实现好友管理、群组管理等功能。 + +**注意:**之前的 Windows SDK 将不再维护,同时对应的 demo ,文档也一并下线。如需查看旧版文档,点击[Windows SDK 集成说明](https://docs-im.easemob.com/im/windows/intro/integration) + +------ + +## 准备 + +### 开发环境需求 + +#### 操作系统 + +- win7/win8/win10 64位操作系统 + +- mac OS 10.10 及以上 + +#### 开发工具 + +- nodejs + +版本 10.0 以上,[官网地址](http://nodejs.cn/) + +- electron + +版本 4.0 以上,[官网地址](https://electronjs.org/),nodejs 安装完成后,可以在命令行使用 npm 命令安装,安装命令: + +``` +npm install electron -g +``` + +------ + +## SDK 目录结构 + +Windows SDK 目录结构如下。使用时将 SDK 拷贝到工程目录下。 + +``` +|-node + |-modules + |-message + index.js + load.js +|-easemob + easemobMac.node + easemobWin.node + libcurl.dll + libcurl.lib + libcrypto.1.0.0.dylib +``` + +------ + +## SDK 模块介绍 + +SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块: + +![img](https://docs-im.easemob.com/_media/im/windows/intro/sdk%E6%A8%A1%E5%9D%97.png) + +### 模块化设计 + +- EMClient + +SDK 的入口,主要完成登录、退出、注册、配置管理等功能,管理连接监听模块 EMConnectionListener 。也是获取其他模块的入口。 + +- EMChatManager + +管理消息的收发,完成会话管理等功能,管理会话监听模块 EMChatManagerListener 。 + +- EMContactManager + +负责好友的添加删除,黑名单的管理等功能,管理好友变更监听模块 EMContactListener。 + +- EMGroupManager + +负责群组的管理,创建、删除群组,管理群组成员等功能,管理群组监听模块 EMGroupManagerListener。 + +- EMChatroomManager + +负责聊天室的查询、加入、退出功能管理,管理聊天室监听模块 EMChatroomManagerListener。 + +------ + +## SDK 对象说明 + +SDK 中使用到的对象包括: + +- 系统配置信息 EMChatConfigs + +- 群组信息 EMGroup + +- 群组配置信息 EMMucSetting + +- 群文件信息 EMMucSharedFile + +- 聊天室信息 EMChatroom + +- 会话信息 EMConversation + +- 消息 EMMessage + +- 文本消息体 EMFileMessageBody + +- 图片消息体 EMImageMessageBody + +- 文件消息体 EMTextMessageBody + +- 命令消息体 EMCmdMessageBody + +具体接口[详见 SDK API Doc](https://downloads.easemob.com/doc/desktop/apidoc/index.html) + +### 依赖模块安装 + +electron 开发中依赖的模块及版本写在 package.json 中,安装依赖模块时,在 sdkdemoapp_windows 目录下使用命令: + +``` +npm install +``` + +如果安装过程中出现 error,可能是网络原因,可以选择使用 yarn 镜像下载安装: + +``` +npm install -g yarn +yarn install +``` + +------ + +### 软件调试 + +首先需要编译软件,运行命令: + +``` +npm run build:app +``` + +调试过程需要使用热启动,运行命令: + +``` +npm run hot-server +``` + +然后另启动一个命令行工具,运行命令: + +``` +npm run start:hot +``` + +可启动软件。调试过程中修改代码后,hot-server 会自动编译新代码,在界面上使用 F5 按键可以立即刷新界面,应用新代码。在界面上点击鼠标右键,弹出右键菜单,点击检查元素,可以打开开发者工具,查看 console 控制台输出,在 Source 中加断点调试。 \ No newline at end of file diff --git a/docs/document/v2/electron/quickstart.md b/docs/document/v2/electron/quickstart.md new file mode 100644 index 000000000..92402d244 --- /dev/null +++ b/docs/document/v2/electron/quickstart.md @@ -0,0 +1,228 @@ +# 快速开始 + +## 加载SDK + +直接加载 index.js 模块,代码如下: + +``` +var easemob = require('../../node/index'); +``` + +------ + +## 用户登录 + +登录前,需要先创建配置对象和 client 对象,用户可以使用 **用户名+密码** 和 **用户名+token** 两种方式登录。 + +### 创建配置对象 + +``` +/** + * 首先构造 sdk 配置信息 + * param1 为资源存储路径,输入参数 + * param2 为工作路径,输入参数,日志存储在这里 + * param3 为 appkey ,输入参数,easemob-demo#chatdemoui 为 DemoAppKey ,需填写自己的 Appkey + * param4 为设备 ID ,默认 0 + * return 配置模块对象 + */ +var emchatconfigs = new easemob.EMChatConfig(".", ".", "easemob-demo#chatdemoui", 0); +``` + +### 创建 client 对象 + +``` +var emclient = new easemob.EMClient(emchatconfigs); +``` + +#### 用户名+密码登录方式代码如下: + +``` +/** + * 密码登录 api ,异步操作 + * param username 为用户名,输入, String + * param password 为密码,输入, String + * return 返回 Promise 对象,response 参数为 #Result + */ +login(username, password) +``` + +调用用方法如下: + +``` +emclient.login("jwfan", "jwfan").then((res) =>{ +if(res.code == 0) + console.log("login success"); +},(error) => {}); +``` + +#### 用户名+token 登录方式代码如下: + +``` +/** + * token 登录 api ,异步操作 + * param username 用户名,输入, String + * param token 用户 token ,输入, String + * return 返回 Promise 对象,response 参数为 #Result + */ +loginWithToken(username, token) +``` + +调用方法如下: + +``` +emclient.loginWithToken("jwfan", "Mytoken").then((res) =>{ +if(res.code == 0) + console.log("login success"); +},(error) => {}); +``` + +登录接口返回值 ret 为 EMError 对象,登录成功则 ret 的 errorCode 为 0,否则可以用 description 获取错误信息 登录后获取用户信息方法如下: + +``` +// 获取用户信息,包括用户名,密码,token +var loginInfo = emclient.getLoginInfo(); +console.log("loginInfo.loginUser = " + loginInfo.loginUser); +console.log("loginInfo.loginPassword = " + loginInfo.loginPassword); +console.log("loginInfo.loginToken = " + loginInfo.loginToken); +``` + +------ + +## 用户退出 + +用户退出代码如下: + +``` +// 返回退出结果 EMError 对象 +emclient.logout().then((res) => { +if(res.code == 0) + console.log("logout success"); +},(error) => {}); +``` + +------ + +## 用户注册 + +接口API如下: + +``` +/** + * 账户注册api,异步操作 + * param username 用户名,输入,String + * param password 密码,输入,String + * return Promise对象,该对象的response参数为Result + */ +createAccount(username, password); + + +调用方法如下: + +emclient.createAccount("newAccount","password").then((res) => { + if(res.errorCode == 0) + console.log("createAccount success"); + else + console.log("createAccount fail:" + res.description); + },(error) => {}) +``` + +------ + +## 连接监听管理 + +通过注册回调函数,可以监听 SDK 的连接与断开状态,在用户登录成功后调用,代码如下 + +``` +// 实例化监听模块 +var listener = new easemob.EMConnectionListener(); +// 添加到client +emclient.addConnectionListener(listener); + +// 连接成功,什么都不需要做 +listener.onConnect(() => { +console.log("EMConnectionListener onConnect"); +}); + +// 连接断开,可能是断网或异地登录被踢,可通过error.errorCode判断,若为206,即为被踢,需要退出登录 +listener.onDisconnect((res) => { +console.log(res.errorCode); +console.log(res.description); +console.log("EMConnectionListener onDisconnect"); +if(res.errorCode == 206) + emclient.logout(); + console.log("你的账户已在其他地方登录"); +}); + +// 移除监听 +emclient.removeConnectionListener(listener); +``` + +------ + +## 系统配置 + +系统配置信息模块为 EMChatConfig ,可以使用 emclient 的 getChatConfigs() 接口获取 + +``` +let config = emclient.getChatConfigs(); +``` + +配置信息包括日志路径,资源路径、下载路径、是否自动同意好友申请、是否自动同意组邀请、退出群组时是否删除消息等,[详见](https://github.com/easemob/sdkdemoapp_windows/blob/electron/jsdoc/out/EmChatConfigs.html) + +------ + +## 私有化部署 + +sdk 提供私有化部署中的服务器设置接口,私有化部署设置使用 api 中的 **EMChatPrivateConfigs**,可以由系统配置模块的 **privateConfigs** 接口获取,代码如下: + +``` +let privateconfigs = config.privateConfigs(); +``` + +**EMChatPrivateConfigs** 使用属性配置服务器部署信息,设置及获取的方法如下: + +``` +privateconfigs.enableDns=false; +privateconfigs.chatServer="192.168.1.100"; +privateconfigs.chatPort=5000; +privateconfigs.restServer="http://192.168.1.101:5001"; +privateconfigs.resolverServer="http://192.168.1.101:5002"; +console.log(privateconfigs.enableDns); +console.log(privateconfigs.chatServer); +console.log(privateconfigs.chatPort); +console.log(privateconfigs.restServer); +console.log(privateconfigs.resolverServer); +``` + +------ + +## 日志输出 + +SDK 提供输出到日志文件的 js 接口,需要先创建 EMLog 对象,可以输出 String 和数字,代码如下: + +``` +// 实例化日志对象,日志按等级可分为error,warn,Debug 3级 +var log = new easemob.EMLog(); + +// 设置日志等级,0为debug,1为warn,2为error +log.setLogLevel(0); + +// 可以控制日志是否输出到控制台,默认不输出 +log.setIsDisplayOnConsole(true); + +//输出日志 +log.Log("Log Test"); +log.Log(5); +log.Debug("Debug Test"); +log.Debug(5); +log.Warn("Warn Test"); +log.Warn(5); +log.Error("Error Test"); +log.Error(5); +``` + +**注:**由于 EMChatConfig 对象创建时会指定日志输出路径,日志对象的创建一般放到 EMChatConfig 创建之后。 + +Windows 桌面端日志生成在 c:/用户/{user}/AppData/Roaming/{ProcessName}/easemob-desktop/easemobLog 路径下的`easemob.log`,{user}为操作系统用户名,{ProcessName}为进程名称,热启动时为**electron**,安装后启动时为**IM-SDK桌面端Demo**。 + +Mac 桌面端日志生成在 /Users/{user}/Library/Application Support/{ProcessName}/easemob-desktop/easemobLog 路径下的`easemolog.log`,{user}为操作系统用户名,{ProcessName}为进程名称,热启动时为**electron**,安装后启动时为**IM-SDK桌面端Demo**。 \ No newline at end of file diff --git a/docs/document/v2/electron/releasenote.md b/docs/document/v2/electron/releasenote.md new file mode 100644 index 000000000..cb44c8b6e --- /dev/null +++ b/docs/document/v2/electron/releasenote.md @@ -0,0 +1,59 @@ +# 桌面端SDK 更新日志 + +## 版本 V3.8.4 2021-12-09 + +新增 + +- 增加支持自定义消息的收发 + +## 版本 V3.8.0 2021-03-13 + +修复 + +- 去掉音视频功能 +- 修复部分Demo bug + +## 版本 V3.6.0 2019-07-16 + +新增 + +- 1v1音视频会话功能 + +修复 + +- 修复了上传附件token过期时,重新获取的token在重试过程中未应用的bug +- 修复了音视频消息体中remotePath路径为空的问题 +- 修复Demo UI层的bug + +## 版本 V3.5.5 2019-05-09 + +新增 + +- sdk 新增私有化部署的接口 + +修复 + +- 修复 Demo 在 mac 系统某些版本(如10.12)上,存在兼容性问题,无法启动的问题 +- 修改 sdk 收到消息后 ack 确认的发送为消息存储到数据库之后,防止突然崩溃导致的消息丢失 +- 修复 Demo UI 层的部分 bug + +优化 + +- 离线消息的下载存储由单条存储改为多条批量存储,提升效率 + +## 版本:V3.5.4 2019-03-26 + +实现功能: + +- 账户的登录、登出、注册。 + +- 聊天:单聊、群聊消息收发。 + +- 消息类型: + +1. 可发送:文本、emoji表情、图片、文件。 +2. 可接收:文本、emoji表情、图片、文件、位置、语音消息。 + +- 好友管理:添加好友、删除好友。 + +- 群管理:创建群、退出群、解散群、修改群标题、邀请加入群、搜索公开群、申请加入公开群。 \ No newline at end of file diff --git a/docs/document/v2/electron/room_manage.md b/docs/document/v2/electron/room_manage.md new file mode 100644 index 000000000..dc437efbd --- /dev/null +++ b/docs/document/v2/electron/room_manage.md @@ -0,0 +1,106 @@ +# 聊天室管理 + +环信桌面端 SDK 支持聊天室功能的集成,集成后可以进行如下操作: + +- 查询聊天室信息 + +- 加入聊天室 + +- 退出聊天室 + +- 监听回调 + +通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。 + +**注意:**聊天室只能有服务端创建,客户端只可以查询、加入和退出聊天室 + +------ + +## 查询聊天室信息 + +``` +// 获取聊天室控制对象 +var chatroomManager = emclient.getChatroomManager(); +// 获取所有聊天室 +var chatroomlist = chatroomManager.fetchAllChatrooms(error); +// 获取聊天室属性 +chatroomlist.map((chatroom) => { + console.log("chatroom id:"+chatroom.chatroomId()); + console.log("chatroom chatroomSubject:"+chatroom.chatroomSubject()); + console.log("chatroom chatroomDescription:"+chatroom.chatroomDescription()); + console.log("chatroom owner:"+chatroom.owner()); + console.log("chatroom chatroomMemberCount:"+chatroom.chatroomMemberCount()); + console.log("chatroom chatroomMemberMaxCount:"+chatroom.chatroomMemberMaxCount()); + console.log("chatroom chatroomAnnouncement:"+chatroom.chatroomAnnouncement()); + var adminlist = chatroom.chatroomAdmins(); + var memberlist = chatroom.chatroomMembers(); + var banslist = chatroom.chatroomBans(); +}); +``` + +------ + +## 加入聊天室 + +接口 API 说明如下: + +``` +/** + * 加入聊天室 + * param chatroomid 聊天室 ID + * param error 操作结果 + * return Promise 对象,该对象的 response 参数 EMChatroom 对象 + */ +joinChatroom(chatroomid,error); +``` + +调用方法如下: + +``` +chatroomManager.joinChatroom(chatroomId, error).then((res)=>{},(error) => {}); +``` + +------ + +## 退出聊天室 + +接口 API 说明如下: + +``` +/** + * 离开聊天室 + * param chatroomid 聊天室 ID + * param error 操作结果 + * return Promise 对象,该对象的 response 参数为空 + */ +leaveChatroom(chatroomid,error); +``` + +调用方法如下: + +``` +chatroomManager.leaveChatroom(chatroomId, error).then((res)=>{},(error) => {}); +``` + +------ + +## 回调监听 + +``` +// 添加消息回调 +var emchatroomlistener = new easemob.EMChatroomManagerListener(); +console.log(emchatroomlistener); + +emchatroomlistener.onMemberJoinedChatroom((chatroom,member) => { + console.log("onMemberJoinedChatroom" + chatroom.chatroomSubject()); + console.log("onMemberJoinedChatroom" + member); +}); +emchatroomlistener.onMemberLeftChatroom((chatroom,member) => { + console.log("onMemberLeftChatroom" + chatroom.chatroomSubject()); + console.log("onMemberLeftChatroom" + member); +}); +//注册监听 +chatroomManager.addListener(emchatroomlistener); +// 移除监听 +chatroomManager.removeListener(emchatroomlistener); +``` \ No newline at end of file diff --git a/docs/document/v2/electron/user_relationship.md b/docs/document/v2/electron/user_relationship.md new file mode 100644 index 000000000..3d1afc810 --- /dev/null +++ b/docs/document/v2/electron/user_relationship.md @@ -0,0 +1,338 @@ +# 好友管理 + +环信桌面端 SDK 支持好友功能的集成,集成后可以进行如下操作: + +- 好友处理 + +- 黑名单处理 + +- 监听联系人变更 + +通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。 + +好友管理模块为 EMContactManager ,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getContactManager 方法获取,代码如下: + +``` +var contactManager = emclient.getContactManager(); +``` + +------ + +## 好友处理 + +好友处理包含以下处理操作: + +- 获取好友列表 + +- 添加好友 + +- 删除好友 + +- 同意好友申请 + +- 拒绝好友申请 + +所有处理操作的示例下面会一一说明。 + +------ + +### 获取好友列表 + +好友列表可以从**本地**和**服务器**获取,各接口说明如下: + +#### 从本地中获取 + +接口 API 如下: + +``` +/** + * 获取当前缓存中的好友列表,若缓存中没有则从数据库中获取 + * return 返回 ContactListResult + */ +allContacts() +``` + +调用方法如下: + +``` +let res = contactManager.allContacts(); +console.log() +``` + +#### 从服务器获取 + +接口API如下: + +``` +/** + * 从服务端拉取好友列表,异步操作 + * return 返回 Promise 对象,response 参数为 ContactListResult + */ +getContactsFromServer(); +``` + +调用方法如下: + +``` +contactManager.getContactsFromServer().then(ContactListResult => { + },(error) => {}); +``` + +------ + +### 添加好友 + +接口API如下: + +``` +/** + * 添加好友 api,异步操作 + * param String,username 为对方用户名,输入参数 + * param String,message 为欢迎信息,输入参数,对方收到好友申请时可以看到 + * return Promise 对象,response 参数为 Result + */ +inviteContact(username, message); +``` + +调用方法如下: + +``` +contactManager.inviteContact("jwfan1", "welcome").then((res) => { + },(error) => {}) +``` + +------ + +### 删除好友 + +接口API如下: + +``` +/** + * 从好友列表移除好友 api,异步操作 + * param username 移除目标好友的用户名,输入参数 + * param keepConversation 移除好友后,是否保留会话,输入参数,布尔型,true 为保留,false 为不保留 + * return Promise 对象,response 参数 Result + */ +deleteContact(username,keepConversation); +``` + +调用方法如下: + +``` +contactManager.deleteContact("jwfan1", true).then((res) => { + },(error) => {}) +``` + +------ + +### 同意好友申请 + +接口 API 如下: + +``` +/** + * 用户收到好友申请后的操作,同意好友申请,异步操作 + * param username 发起好友申请的用户名,输入参数 + * return Promise 对象,response 参数为 Result + */ +acceptInvitation(username); +``` + +调用方法如下: + +``` +contactManager.acceptInvitation(username).then((res) => { + },(error) => {}) +``` + +------ + +### 拒绝好友申请 + +接口 API 如下: + +``` +/** + * 用户收到好友申请后的操作,拒绝好友申请,异步操作 + * param username 发起好友申请的用户名,输入参数 + * return Promise 对象,response 参数为 Result + */ +declineInvitation(username) +``` + +调用方法如下: + +``` +contactManager.declineInvitation(username).then((res) => { + },(error) => {}) +``` + +------ + +## 黑名单 + +黑名单包含以下处理操作: + +- 获取黑名单 + +- 设置黑名单 + +- 移入黑名单 + +- 从黑名单移除 + +所有处理操作的示例下面会一一说明。 + +------ + +### 获取黑名单 + +黑名单列表可以从**本地**和**服务器**获取,各接口说明如下: + +#### 从本地中获取 + +接口 API 如下: + +``` +/** + * 从本地获取用户的黑名单列表,黑名单的用户无法发送消息 + * return ContactListResult 黑名单列表,data 为 String 数组 + */ +blacklist(); +``` + +调用方法如下: + +``` +let res = contactManager.blacklist() +``` + +#### 从服务器获取 + +接口 API 如下: + +``` +/** + * 从服务器获取用户的黑名单列表,黑名单的用户无法发送消息 + * return Promise 对象,response 参数为 ContactListResult + */ +getBlackListFromServer(); +``` + +调用方法如下: + +``` +contactManager.getBlackListFromServer().then((res) => {},(error) => {}) +``` + +------ + +### 设置黑名单 + +接口 API 如下: + +``` +/** + * 设置用户的黑名单列表,异步操作 + * param blacklist 输入参数,黑名单列表,StringArray,["ID1","ID2"] + * return Promise 对象,response 参数为 Result + */ +saveBlackList(blacklist); +``` + +调用方法如下: + +``` +contactManager.saveBlackList(['jwfan2', 'jwfan3']).then((res)=>{},(error) => {}); +``` + +### 移入黑名单 + +接口 API 如下: + +``` +/** + * 添加用户到黑名单列表,异步操作 + * param username 输入参数,要添加的黑名单用户名,String + * return Promise 对象,response 参数为 Result + */ +addToBlackList(username); +``` + +调用方法如下: + +``` +contactManager.addToBlackList('jwfan2').then((res)=>{},(error) => {}); +``` + +------ + +### 从黑名单移除 + +接口 API 如下: + +``` +/** + * 从黑名单列表移除用户,异步操作 + * param username 输入参数,要从黑名单移除的用户名,String + * return Promise 对象,response 参数为 Result + */ +removeFromBlackList(username); +``` + +调用方法如下: + +``` +contactManager.removeFromBlackList('jwfan2').then((res)=>{},(error) => {}); +``` + +------ + +## 监听联系人变更 + +通过注册回调函数,监听联系人的变动,代码如下: + +``` +// 实例化监听对象 +var listener = new easemob.EMContactListener(); + +// 有好友添加的回调 +listener.onContactAdded((username) => { +console.log("onContactAdded username: " + username); +}); + +// 有好友删除的回调 +listener.onContactDeleted((username) => { +console.log("onContactDeleted username: " + username); +}); + +// 收到好友申请的回调,用户可以在这里同意或拒绝好友申请 +listener.onContactInvited((username, reason) => { +console.log("onContactInvited username: " + username + " reason: " + reason); +if (username == "jwfan1") { + let res = contactManager.acceptInvitation(username); +} else { + let res = contactManager.declineInvitation(username); +} +}); + +// 群组邀请成员同意 +listener.onContactAgreed((username) => { +console.log("onContactAgreed username: " + username); +}); + +// 群组邀请成员拒绝 +listener.onContactRefused((username) => { +console.log("onContactRefused username: " + username); +}); + +// 注册回调函数 +contactManager.registerContactListener(listener); + + +===== 结束联系人监听 ===== + +// 移除回调监听 +contactManager.removeContactListener(listener); +``` \ No newline at end of file diff --git a/docs/document/v2/flutter/error.md b/docs/document/v2/flutter/error.md index 7d126aa90..1587434c3 100644 --- a/docs/document/v2/flutter/error.md +++ b/docs/document/v2/flutter/error.md @@ -2,6 +2,6 @@ -[Android 平台设备请参见:](/document/android/error.html) +[Android 平台设备请参见:](/document/v2/android/error.html) -[iOS 平台设备请参见:](/document/ios/error.html) \ No newline at end of file +[iOS 平台设备请参见:](/document/v2/ios/error.html) \ No newline at end of file diff --git a/docs/document/v2/flutter/group_attributes.md b/docs/document/v2/flutter/group_attributes.md index ddc42fbfb..6e0f2f80d 100644 --- a/docs/document/v2/flutter/group_attributes.md +++ b/docs/document/v2/flutter/group_attributes.md @@ -18,8 +18,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/flutter/group_manage.md b/docs/document/v2/flutter/group_manage.md index 3cbf8b2c3..f0dd7852e 100644 --- a/docs/document/v2/flutter/group_manage.md +++ b/docs/document/v2/flutter/group_manage.md @@ -23,8 +23,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); ## 实现方法 diff --git a/docs/document/v2/flutter/group_members.md b/docs/document/v2/flutter/group_members.md index ed7794d33..087ac4b0c 100644 --- a/docs/document/v2/flutter/group_members.md +++ b/docs/document/v2/flutter/group_members.md @@ -21,9 +21,9 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); - 了解群成员角色,详见 [群组概述](group_overview.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 + ## 实现方法 diff --git a/docs/document/v2/flutter/message_manage.md b/docs/document/v2/flutter/message_manage.md index 359609ec9..66958343c 100644 --- a/docs/document/v2/flutter/message_manage.md +++ b/docs/document/v2/flutter/message_manage.md @@ -31,7 +31,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/flutter/message_modify.md b/docs/document/v2/flutter/message_modify.md index 8d18da44e..8ed38f336 100644 --- a/docs/document/v2/flutter/message_modify.md +++ b/docs/document/v2/flutter/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。 ::: -你可以调用 `EMChatManager#modifyMessage` 方法修改已经发送成功的消息, 目前只支持文本消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `EMChatManager#modifyMessage` 方法修改已经发送成功的消息, 目前只支持文本消息。一条消息默认最多可修改 10 次。 示例代码如下: diff --git a/docs/document/v2/flutter/message_receipt.md b/docs/document/v2/flutter/message_receipt.md index fb146886b..0b247dfb5 100644 --- a/docs/document/v2/flutter/message_receipt.md +++ b/docs/document/v2/flutter/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -36,8 +36,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 @@ -157,7 +157,7 @@ try { 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 消息发送方需要知道群组消息是否已读,需要监听 `onGroupMessageRead` 事件。 diff --git a/docs/document/v2/flutter/message_retrieve.md b/docs/document/v2/flutter/message_retrieve.md index 80a60ba28..2b44d2a2d 100644 --- a/docs/document/v2/flutter/message_retrieve.md +++ b/docs/document/v2/flutter/message_retrieve.md @@ -4,9 +4,7 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 -::: + ## 技术原理 @@ -24,7 +22,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -147,7 +145,7 @@ try { 你可以调用 `deleteRemoteMessagesBefore` 和 `deleteRemoteMessagesWithIds` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。已删除的消息自动从设备本地移除。 :::tip -若使用该功能,需将 SDK 升级至 V4.0.0 或以上版本并联系商务。 +若使用该功能,需将 SDK 升级至 V4.0.0 或以上版本。 ::: ```dart diff --git a/docs/document/v2/flutter/message_send_receive.md b/docs/document/v2/flutter/message_send_receive.md index b4eafcdf1..1c3b1a233 100644 --- a/docs/document/v2/flutter/message_send_receive.md +++ b/docs/document/v2/flutter/message_send_receive.md @@ -38,7 +38,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -153,7 +153,8 @@ class _ChatMessagesPageState extends State { ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 + ```dart try { await EMClient.getInstance.chatManager.recallMessage(msgId); diff --git a/docs/document/v2/flutter/moderation.md b/docs/document/v2/flutter/moderation.md index 8b9d6d4dc..5e1ec2afe 100644 --- a/docs/document/v2/flutter/moderation.md +++ b/docs/document/v2/flutter/moderation.md @@ -14,7 +14,7 @@ - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 - 开通消息审核服务,详见管理后台。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/flutter/multi_device.md b/docs/document/v2/flutter/multi_device.md index 8b4c9d51a..84a57c488 100644 --- a/docs/document/v2/flutter/multi_device.md +++ b/docs/document/v2/flutter/multi_device.md @@ -11,7 +11,8 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: + ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +25,7 @@ - +
@@ -38,7 +39,7 @@ - +
单端/多端登录
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
@@ -128,7 +129,7 @@ EMClient.getInstance.addConnectionEventHandler( 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/flutter/overview.md b/docs/document/v2/flutter/overview.md index 56ce90ad9..6af6c4fdc 100644 --- a/docs/document/v2/flutter/overview.md +++ b/docs/document/v2/flutter/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -40,7 +40,7 @@ try { :::notice - 以上注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用; -- 正式环境应[调用 REST API 接口注册用户](/document/server-side/account_system.html#注册用户)。 +- 正式环境应[调用 REST API 接口注册用户](/document/v2/server-side/account_system.html#注册用户)。 ::: ## 用户登录 @@ -50,7 +50,7 @@ try { - 用户 ID + 密码 - 用户 ID + token -手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -64,7 +64,7 @@ try { } on EMError catch (e) {} ``` -**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/flutter/presence.md b/docs/document/v2/flutter/presence.md index 906b1103f..0ceb7ee9b 100644 --- a/docs/document/v2/flutter/presence.md +++ b/docs/document/v2/flutter/presence.md @@ -6,9 +6,6 @@ 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。 -:::notice -私有化版本不支持在线状态订阅。 -::: ## 技术原理 @@ -40,8 +37,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `1.0.5 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/flutter/quickstart.md b/docs/document/v2/flutter/quickstart.md index 7eb201aeb..f0c186cff 100644 --- a/docs/document/v2/flutter/quickstart.md +++ b/docs/document/v2/flutter/quickstart.md @@ -31,7 +31,7 @@ 配置开发或者运行环境如果遇到问题,请参考 [这里](https://docs.flutter.dev/get-started/install)。 -- 有效的环信即时通讯 IM 开发者账号和 App Key,详见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。 +- 有效的环信即时通讯 IM 开发者账号和 App Key,详见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。 ## 项目设置 @@ -259,7 +259,7 @@ void _initSDK() async { ### 注册环信 IM 用户 -Demo 中使用 [开放注册](/server-side/account_system.html#开放注册单个用户),此操作需要在环信后台开启 `开放注册`。在开放注册模式下,允许通过 App 客户端直接注册环信用户,正式环境中请使用 [授权注册](server-side/account_system.html#授权注册单个用户)。 +Demo 中使用 [开放注册](/document/v2/server-side/account_system.html#开放注册单个用户),此操作需要在环信后台开启 `开放注册`。在开放注册模式下,允许通过 App 客户端直接注册环信用户,正式环境中请使用 [授权注册](/document/v2/server-side/account_system.html#授权注册单个用户)。 在 `_signUp` 方法中添加注册代码: @@ -457,19 +457,19 @@ flutter run 运行结果如下: - + 参考以下步骤发送和接收文本消息: 1. 输入任意用户名(如 `flutter001` 和 `flutter002`)和密码 `1`,点击 `SIGN UP` 创建用户; 2. 以 `flutter001` 身份登录 Demo,将 `Enter the username you want to send` 输如为 `flutter002`, 发送文本消息; - + 3. 以 `flutter002` 身份登录 Demo,查看 Log 信息确认是否都到消息。 - + ## 后续步骤 -为保障通信安全,在正式生产环境中,你需要在自己的 app 服务端生成 Token。详见[使用 App Token 鉴权](/product/easemob_app_token.html)。 \ No newline at end of file +为保障通信安全,在正式生产环境中,你需要在自己的 app 服务端生成 Token。详见[使用 App Token 鉴权](/document/v2/server-side/easemob_app_token.html)。 \ No newline at end of file diff --git a/docs/document/v2/flutter/reaction.md b/docs/document/v2/flutter/reaction.md index 7e1be8e9a..4c94963b0 100644 --- a/docs/document/v2/flutter/reaction.md +++ b/docs/document/v2/flutter/reaction.md @@ -6,7 +6,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -29,8 +28,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `1.0.5 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/flutter/room_attributes.md b/docs/document/v2/flutter/room_attributes.md index 1f217c88d..7f3954475 100644 --- a/docs/document/v2/flutter/room_attributes.md +++ b/docs/document/v2/flutter/room_attributes.md @@ -20,8 +20,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/flutter/room_manage.md b/docs/document/v2/flutter/room_manage.md index 4a13320d4..9944ef2cc 100644 --- a/docs/document/v2/flutter/room_manage.md +++ b/docs/document/v2/flutter/room_manage.md @@ -25,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。 ## 实现方法 @@ -36,9 +35,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `EMChatRoomManager#createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `EMChatRoomManager#createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/flutter/room_members.md b/docs/document/v2/flutter/room_members.md index 2d9967893..3697407e4 100644 --- a/docs/document/v2/flutter/room_members.md +++ b/docs/document/v2/flutter/room_members.md @@ -21,8 +21,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/flutter/thread.md b/docs/document/v2/flutter/thread.md index 576c97f7d..868298543 100644 --- a/docs/document/v2/flutter/thread.md +++ b/docs/document/v2/flutter/thread.md @@ -6,9 +6,6 @@ 本文介绍如何使用环信即时通讯 IM Flutter SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -29,9 +26,8 @@ 开始前,请确保满足以下条件: - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/flutter/thread_message.md b/docs/document/v2/flutter/thread_message.md index 758032fec..24910c369 100644 --- a/docs/document/v2/flutter/thread_message.md +++ b/docs/document/v2/flutter/thread_message.md @@ -32,8 +32,8 @@ 开始前,请确保满足以下条件: - 已集成 `1.0.5 或版本` SDK 的基本功能,完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/flutter/user_relationship.md b/docs/document/v2/flutter/user_relationship.md index 1bbde6e24..5b4026774 100644 --- a/docs/document/v2/flutter/user_relationship.md +++ b/docs/document/v2/flutter/user_relationship.md @@ -30,7 +30,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/flutter/userprofile.md b/docs/document/v2/flutter/userprofile.md index 8f5ba095f..3591965de 100644 --- a/docs/document/v2/flutter/userprofile.md +++ b/docs/document/v2/flutter/userprofile.md @@ -25,7 +25,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -45,7 +45,7 @@ try { } ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | :---------- | :----- | :----------------------------------------------------------- | diff --git a/docs/document/v2/ios/demo.md b/docs/document/v2/ios/demo.md index 7675a32b3..8a483dc0c 100644 --- a/docs/document/v2/ios/demo.md +++ b/docs/document/v2/ios/demo.md @@ -2,7 +2,7 @@ -环信即时通讯 IM iOS 端提供示例应用可供体验。 + ## 代码下载 您可以通过以下两种方式获取到源代码: -- 下载代码压缩包:[IM SDK 及 Demo 下载](https://www.easemob.com/download/im) -- 下载源代码:[github 源码地址](https://github.com/easemob/chat-ios) +- 下载代码压缩包:[IM SDK 及 Demo 下载](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip) + 欢迎大家提交 PR 改进和修复 EaseIM 和 EaseIMKit 中的问题。 ## 运行 EaseIM 工程 -从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 iOS SDK 压缩包,然后解压。解压后在 `EaseIM` 文件夹下,即为 EaseIM 的工程目录。 +下载 iOS SDK 压缩包,然后解压。解压后在 `EaseIM` 文件夹下,即为 EaseIM 的工程目录。 终端 cd 到 EaseIM 的 `podfile` 目录下,终端执行 `pod install` 命令,等待下载完所有的 pod 依赖库,即可打开 `EaseIM.xcworkspace`,运行 EaseIM demo 进行自定义再次开发。 @@ -67,6 +68,6 @@ Demo 中有几大 UI 功能模块,在集成时将对应的模块添加到工 ## 部分 UI 展示 -![联系人列表](@static/images/android/app-demo-ui-2.jpeg) -![聊天页面](@static/images/android/app-demo-ui-3.jpeg) \ No newline at end of file +   + \ No newline at end of file diff --git a/docs/document/v2/ios/easecallkit.md b/docs/document/v2/ios/easecallkit.md index f106f5d30..9b6f63c3b 100644 --- a/docs/document/v2/ios/easecallkit.md +++ b/docs/document/v2/ios/easecallkit.md @@ -8,7 +8,7 @@ 使用 `EaseCallKit` 库可以快速实现常用的音视频场景,通过信令的交互确认,保证 **用户多端登录时,收到呼叫同时振铃,一端处理后,其他端自动停止**。 -`EaseCallKit` 库在 Github 上进行了保存,请参见 [EaseCallKit iOS 端使用指南](https://github.com/easemob/easecallkitui-ios)。 +`EaseCallKit` 库在 Github 上进行了保存,请参见 [EaseCallKit iOS 端使用指南](https://github.com/easemob/easecallkitui-ios/tree/4.0.0)。 **`EaseCallKit` 在通话过程中,使用环信 ID 加入频道,方便音视频视图中显示用户名。如果用户不使用 `EaseCallKit` 而直接调用声网 API,也可以直接使用数字 UID 加入频道。** @@ -18,7 +18,7 @@ ## 跑通 Demo -`EaseCallKit` 集成在环信提供的开源 IM Demo 中,你可以通过进入 [环信 IM Demo 下载页面](https://www.easemob.com/download/im),选择 iOS 端 Demo 下载,或直接进入 [Github 开源网站](https://github.com/easemob/chat-ios) 下载。 +EaseCallKit 集成在环信开源 IM Demo 中,你可以直接下载 iOS 端Demo下载 [iOS IM源码](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip) 。 - 安装 SDK 与 `EaseCallKit` @@ -40,7 +40,7 @@ pod install 在集成该库前,你需要满足以下条件: -- 分别创建 [环信应用](/product/enable_and_configure_IM.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目); +- 分别创建 [环信应用](/document/v2/privatization/uc_configure.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目); - 已完成环信 IM 的基本功能,包括登录、好友、群组以及会话等的集成; - 上线之前开通声网 token 验证时,用户需要实现自己的 [App Server](https://github.com/easemob/easemob-im-app-server/tree/master/agora-app-server),用于生成 token。利用 App Server 生成 token 的过程参见 [声网 token](https://docportal.shengwang.cn/cn/video-call-4.x/token_server_ios_ng?platform=iOS)。 @@ -163,13 +163,13 @@ config.agoraAppId=@"声网 AppID"; 发起通话后的 UI 界面如下: - + ### 收到邀请 主叫方调用邀请接口后,如果被叫方在线且并未处于通话过程中,将弹出通话页面,被叫用户可选择接听或者拒绝。通话页面如下: - + 被叫振铃的同时,会触发以下回调: diff --git a/docs/document/v2/ios/easeimkit.md b/docs/document/v2/ios/easeimkit.md index b3e5e2317..6f87eb206 100644 --- a/docs/document/v2/ios/easeimkit.md +++ b/docs/document/v2/ios/easeimkit.md @@ -12,11 +12,11 @@ EaseIMKit 是基于环信 IM SDK 的一款 UI 组件库,它提供了一些通 EaseIMKit 源码地址 -- [EaseIMKit 工程](https://github.com/easemob/easeui_ios/tree/EaseIMKit) +- [EaseIMKit 工程](https://github.com/easemob/easeui_ios/tree/EaseIMKit_4.1.0) 使用 EaseIMKit 环信 IM App 地址: -- [环信 IM](https://github.com/easemob/chat-ios) +- [环信 IM](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip) ## 导入 @@ -43,9 +43,13 @@ EaseIMKit 中包含了拍照,发语音,发图片,发视频,发位置, ### 源码集成 + +[下载IM源码](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip) + - 创建 `Podfile` 文件并添加 EaseIMKit 源码依赖 @@ -75,7 +79,7 @@ EaseIMKit 中包含了拍照,发语音,发图片,发视频,发位置, 1. 终端 cd 到 Podfile 文件所在目录,执行 pod install 命令在项目中安装 EaseIMKit 本地源码 2. 执行完成后,则在 Xcode 项目目录 Pods/Development Pods/ 可找到 EaseIMKit 源码,如下图所示: - ![img](@static/images/ios/easeimkit3.png) + 3. 可对源码进行符合自己项目目标的自定义修改 @@ -334,19 +338,21 @@ typedef enum { 聊天页背景色,输入区颜色配置示例: -![背景色,输入区颜色](@static/images/ios/easeimkit4.png) + 聊天会话输入区类型参数配置示例: -![全部功能,语音不可用,表情不可用,语音和表情不可用,纯文本](@static/images/ios/easeimkit5.png) + + 输入区扩展功能参数配置示例: -![输入区扩展](@static/images/ios/easeimkit6.jpeg) + 聊天会话群聊消息同左排列,时间线背景色,时间字体颜色配置示例: -![群聊消息同左排列,时间线背景色,时间字体颜色](@static/images/ios/easeimkit7.jpeg) + + ### 会话列表样式配置 @@ -417,7 +423,7 @@ typedef enum { 通讯录添加头部功能区:新的好友,群聊,聊天室示意图: -![头部功能区:新的好友,群聊,聊天室以及联系人列表](@static/images/ios/easeimkit8.png) + ## 自定义功能扩展 @@ -476,7 +482,7 @@ EaseChatViewControllerDelegate 通过自定义 cell 展示单聊音视频通话记录的效果图: -![自定义 cell 展示单聊音视频通话记录](@static/images/ios/easeimkit9.png) + #### 选中消息的回调 diff --git a/docs/document/v2/ios/group_attributes.md b/docs/document/v2/ios/group_attributes.md index e064d5b71..8fefd08e3 100644 --- a/docs/document/v2/ios/group_attributes.md +++ b/docs/document/v2/ios/group_attributes.md @@ -18,8 +18,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/ios/group_manage.md b/docs/document/v2/ios/group_manage.md index 8d5573aba..c8380a14e 100644 --- a/docs/document/v2/ios/group_manage.md +++ b/docs/document/v2/ios/group_manage.md @@ -22,8 +22,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/ios/group_members.md b/docs/document/v2/ios/group_members.md index 781231138..60eae8177 100644 --- a/docs/document/v2/ios/group_members.md +++ b/docs/document/v2/ios/group_members.md @@ -20,9 +20,9 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 - 了解群成员角色,详见 [群组功能介绍](group_overview.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 + ## 实现方法 diff --git a/docs/document/v2/ios/message_manage.md b/docs/document/v2/ios/message_manage.md index c613b71c2..0d1012f45 100644 --- a/docs/document/v2/ios/message_manage.md +++ b/docs/document/v2/ios/message_manage.md @@ -32,7 +32,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/ios/message_modify.md b/docs/document/v2/ios/message_modify.md index b4e2b01c1..7f40a7943 100644 --- a/docs/document/v2/ios/message_modify.md +++ b/docs/document/v2/ios/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。 ::: -你可以调用 `EMChatManager::modifyMessage:body:completion:` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `EMChatManager::modifyMessage:body:completion:` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。 消息修改后,消息的接收方会收到 `EMChatManagerDelegate#onMessageContentChanged:operatorId:operationTime` 事件,该事件中会携带修改后的消息对象、最新一次修改消息的用户以及消息的最新修改时间。对于群聊会话,除了修改消息的用户,群组内的其他成员均会收到该事件。 diff --git a/docs/document/v2/ios/message_receipt.md b/docs/document/v2/ios/message_receipt.md index a04dea65a..adedefa3e 100644 --- a/docs/document/v2/ios/message_receipt.md +++ b/docs/document/v2/ios/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -40,8 +40,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 @@ -189,7 +189,7 @@ EMChatManagerDelegate 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 群主或群管理员设置 `EMChatMessage` 的属性 `isNeedGroupAck` 为 `YES`。 diff --git a/docs/document/v2/ios/message_retrieve.md b/docs/document/v2/ios/message_retrieve.md index 45adf99d3..50e50ab81 100644 --- a/docs/document/v2/ios/message_retrieve.md +++ b/docs/document/v2/ios/message_retrieve.md @@ -4,9 +4,7 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何获取和删除服务端的会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 -::: + ## 技术原理 @@ -24,7 +22,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -105,8 +103,8 @@ NSString *cursor = @""; 你可以调用 `removeMessagesFromServerWithTimeStamp` 或 `removeMessagesFromServerMessageIds` 方法按消息时间或消息 ID 单向删除服务端的历史消息。每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。登录该账号的其他设备会收到 `EMMultiDevicesDelegate` 中的 `multiDevicesMessageBeRemoved` 回调,已删除的消息自动从设备本地移除。 -:::tip -若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本并联系商务开通。 +:::notice +若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本。 ::: 示例代码如下: diff --git a/docs/document/v2/ios/message_send_receive.md b/docs/document/v2/ios/message_send_receive.md index 8485f4305..0c563597d 100644 --- a/docs/document/v2/ios/message_send_receive.md +++ b/docs/document/v2/ios/message_send_receive.md @@ -38,7 +38,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -112,7 +112,7 @@ message.priority = EMChatRoomMessagePriorityHigh; ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```objectivec // 异步方法 diff --git a/docs/document/v2/ios/multi_device.md b/docs/document/v2/ios/multi_device.md index cc1f13e5b..aff8a5a5f 100644 --- a/docs/document/v2/ios/multi_device.md +++ b/docs/document/v2/ios/multi_device.md @@ -11,7 +11,7 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +24,7 @@ - +
@@ -121,7 +121,7 @@ option.customDeviceName = @"XXX的iPad"; 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击**新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击**新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/ios/overview.md b/docs/document/v2/ios/overview.md index b2e072a95..6e10038e3 100644 --- a/docs/document/v2/ios/overview.md +++ b/docs/document/v2/ios/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号并获得 App key,详见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号并获得 App key,详见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -41,7 +41,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"]; :::notice - 以上注册模式为在客户端注册,旨在方便测试,并不推荐在正式环境中使用; -- 正式环境应使用服务器端调用 REST API 接口 [注册用户](/document/server-side/account_system.html#注册用户)。 +- 正式环境应使用服务器端调用 REST API 接口 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ::: ## 用户登录 @@ -53,7 +53,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"]; ### 手动登录 -登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 手动登录后,收到 `connectionStateDidChange` 回调表明 SDK 与环信服务器连接成功。 @@ -70,7 +70,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"]; ``` -**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如每次登录时更新 token 等机制。 @@ -190,7 +190,7 @@ option.logLevel = EMLogLevelDebug; ### 获取本地日志 -SDK 会写入日志文件到本地。日志文件路径如下:沙箱 Library/Application Support/HyphenateSDK/easemobLog/easemob.log。 +SDK 会写入日志文件到本地。日志文件路径如下:
沙箱 Library/Application Support/HyphenateSDK/easemobLog/easemob.log。 以真机为例,获取本地日志过程如下: diff --git a/docs/document/v2/ios/presence.md b/docs/document/v2/ios/presence.md index d552061ae..39e8db4ed 100644 --- a/docs/document/v2/ios/presence.md +++ b/docs/document/v2/ios/presence.md @@ -35,8 +35,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `3.9.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/ios/push.md b/docs/document/v2/ios/push.md index 06d09e556..8bfacdd52 100644 --- a/docs/document/v2/ios/push.md +++ b/docs/document/v2/ios/push.md @@ -184,7 +184,7 @@ DeviceToken 注册后,iOS 系统会通过以下方式将 DeviceToken 回调给 - 设置推送通知,包含设置推送通知方式和免打扰模式。 - 配置推送翻译和推送模板。 -其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)上开通。 +其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在环信即时通讯云控制后台上开通。 ![image](@static/images/ios/push/push_ios_27_enable_push.png) @@ -449,7 +449,7 @@ NSArray *conversations = @[conversation1,conversation2]; #### 4.3 设置推送翻译 -如果用户启用 [自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 +如果用户启用 自动翻译 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。 diff --git a/docs/document/v2/ios/quickstart.md b/docs/document/v2/ios/quickstart.md index 0964ab6e9..4e48e8330 100644 --- a/docs/document/v2/ios/quickstart.md +++ b/docs/document/v2/ios/quickstart.md @@ -15,7 +15,7 @@ - Xcode (推荐最新版本)。 - 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple 设备。 - CocoaPods [1.10.1 或更高版本](https://cocoapods.org/)。 -- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 - 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。 ## 1. 准备开发环境 diff --git a/docs/document/v2/ios/reaction.md b/docs/document/v2/ios/reaction.md index 9004c5168..0b40c80e8 100644 --- a/docs/document/v2/ios/reaction.md +++ b/docs/document/v2/ios/reaction.md @@ -6,7 +6,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -30,8 +29,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `HyphenateChat 3.9.2.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/ios/releasenote.md b/docs/document/v2/ios/releasenote.md index e6f624172..e0161c9e5 100644 --- a/docs/document/v2/ios/releasenote.md +++ b/docs/document/v2/ios/releasenote.md @@ -227,7 +227,6 @@ ### 新增特性: - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应。 -- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核。 ### 优化: @@ -260,7 +259,6 @@ ### 新增特性: - [IM SDK] [用户在线状态 (Presence) 订阅](presence.html)功能。 -- [IM SDK] [翻译](message_translation.html)功能更新,增加自动翻译接口。实现用户按需翻译和发消息自动翻译。 ### 优化: @@ -275,7 +273,7 @@ - [IM SDK] [单向删除服务端会话 API](https://sdkdocs.easemob.com/apidoc/ios/chat3.0/protocol_i_e_m_chat_manager-p.html#a4ac87045ad781e99c59acc271f9af433); - [IM SDK] 免打扰事件的多设备间同步; -- [IM SDK] Push 平台推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,具体见:[iOS 推送集成](https://docs-im.easemob.com/push/apppush/iossdk); +- [IM SDK] Push 平台推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,具体见:[iOS 推送集成](/push/push_integration_note_ios.html); - [IM SDK] 发送图片支持 PNG 格式; - [IM SDK] 非好友不能发送消息错误码 [221 EMErrorUserNotOnRoster]; @@ -917,7 +915,7 @@ IM_DEMO 修改: 新功能: -- 实现不同模式的实时语音会议功能 [多人音视频会议](https://docs-im.easemob.com/im/ios/basics/multiuserconference) +- 实现不同模式的实时语音会议功能 [多人音视频会议](/private/media/conference_ios.html) - 添加动态更换对方实时视频显示页面的功能[IEMConferenceManager updateConference:streamId:remoteVideoView:completion:] ## 版本 V3.3.9 2018-02-11 diff --git a/docs/document/v2/ios/room_attributes.md b/docs/document/v2/ios/room_attributes.md index ac023fd45..e9e08a56e 100644 --- a/docs/document/v2/ios/room_attributes.md +++ b/docs/document/v2/ios/room_attributes.md @@ -20,8 +20,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/ios/room_manage.md b/docs/document/v2/ios/room_manage.md index ed6ea659e..9c2096585 100644 --- a/docs/document/v2/ios/room_manage.md +++ b/docs/document/v2/ios/room_manage.md @@ -25,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100 ,即管理员最多可添加 99 个。 ## 实现方法 @@ -36,9 +35,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatroomWithSubject` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatroomWithSubject` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/ios/room_members.md b/docs/document/v2/ios/room_members.md index 9c0c73bb9..7e5aab57e 100644 --- a/docs/document/v2/ios/room_members.md +++ b/docs/document/v2/ios/room_members.md @@ -21,8 +21,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/ios/thread.md b/docs/document/v2/ios/thread.md index 594924d5e..e8dfe5443 100644 --- a/docs/document/v2/ios/thread.md +++ b/docs/document/v2/ios/thread.md @@ -4,9 +4,6 @@ 子区是群组成员的子集,是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM iOS SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -26,9 +23,8 @@ 开始前,请确保满足以下条件: - 完成 3.9.3 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/ios/thread_message.md b/docs/document/v2/ios/thread_message.md index e09af9b6a..27e67b1db 100644 --- a/docs/document/v2/ios/thread_message.md +++ b/docs/document/v2/ios/thread_message.md @@ -30,9 +30,8 @@ 开始前,请确保满足以下条件: - 完成 3.9.3 以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/ios/user_relationship.md b/docs/document/v2/ios/user_relationship.md index 6410b097c..aa278a65c 100644 --- a/docs/document/v2/ios/user_relationship.md +++ b/docs/document/v2/ios/user_relationship.md @@ -25,7 +25,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: - 完成 SDK 初始化并连接到服务器,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); - 调用好友请求相关方法之前先导入头文件 `IEMContactManager.h`; - 调用监听接收好友请求等回调方法 API 之前导入头文件:`EMContactManagerDelegate.h`。 diff --git a/docs/document/v2/ios/userprofile.md b/docs/document/v2/ios/userprofile.md index c28363ace..9c8b83827 100644 --- a/docs/document/v2/ios/userprofile.md +++ b/docs/document/v2/ios/userprofile.md @@ -26,7 +26,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -68,7 +68,7 @@ NSString *url = @"https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/IMD }]; ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | ----------- | ------ | ------------------------------------------------------------------------------------------------- | @@ -142,7 +142,7 @@ EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:@"convers 如果需要在名片中展示更丰富的信息,可以在 `ext` 中增加更多字段。 -可参考 [示例项目](https://www.easemob.com/download/im) 中的以下类: +可参考 Demo 中的以下类: - `EMCustomMessageBody` - `EMChatMessage` diff --git a/docs/document/v2/linux/overview.md b/docs/document/v2/linux/overview.md new file mode 100644 index 000000000..9a3a5aad4 --- /dev/null +++ b/docs/document/v2/linux/overview.md @@ -0,0 +1,109 @@ +# Linux SDK 集成说明 + + +Linux SDK 是为在 Linux 及其他嵌入式设备中集成 IM 功能提供的 SDK。用户可以用 SDK 实现 IM 功能。目前支持文本消息、图片、语音、位置等消息以及透传消息,还可以实现好友管理、群组管理等功能。 + +目前已经支持 ARM 平台及 MIPS 平台。 + +## 集成准备 + +获取环信 IM Linux SDK,SDK中包含如下文件: + +- release +- doc +- demo + +release 目录中包含SDK的库文件和头文件,libeasemob.a 是 SDK 静态库文件,include 目录包含 sdk 的头文件,doc 目录包含对 sdk 的详细说明,demo 包含使用 SDK 的 demo 程序。 + +## 集成示例 + +### 获取 EMClient + +EMClient 是 IM 服务的入口,可以直接调用 EMClient 的接口,也可以通过 EMClient 获得相应 EMContactManager、EMChatManager 等进行相应的操作。 + +``` +#include "emclient.h" + ... + using namespace easemob; + + easemob::EMChatConfigsPtr configPtr = easemob::EMChatConfigsPtr(new easemob::EMChatConfigs(resourcePath, workPath, "easemob-demo#chatdemoui")); + chatClient = easemob::EMClient::create(configPtr); +``` + +### 注册及登录 + +调用 chatclient 的 createAccount(), login() 接口可以实现注册、登录功能。 + +注册的示例: + +``` +easemob::EMErrorPtr result = chatClient->createAccount("zhangsan", "passw0rd"); +if(result->mErrorCode == EMError::NO_ERROR) { + cout << "Sing up successfully." << endl; +} else { + cout << result->mDescription << endl; +} +``` + +登录的示例 : + +``` +easemob::EMErrorPtr result = chatClient->login("zhangsan", "passw0rd"); +if(result->mErrorCode == EMError::NO_ERROR) { + cout << "Login successfully" << endl; +} else { + cout << result->mDescription << endl; +} +``` + +**注意:** createAccount(), login() 是需要与后台服务器通讯的操作,可能需要一定时间,如果程序想同时显示 UI 的话,需要放在单独线程中处理。 + +### 添加好友 + +管理好友的操作需要通过 EMChatManager 进行。 + +``` +chatClient->getContactManager().inviteContact("contact01", "hi, contact01"); +``` + +添加好友需要等待对方的确认,也可以由程序设置成自动接受好友邀请。 + +### 与好友聊天 + +接收消息需要实现 EMChatManagerListener 的 onReceiveMessage() 方法并且注册该listener。 + +``` +class Chat : public easemob::EMChatManagerListener { + void onReceiveMessage(const easemob::EMMessageList &messages); +} + +chatClient->getChatManager().addListener(this); +``` + +发送消息需要创建 EMMessage 实例,目前支持文本、图片、音频文件等消息类型。 + +``` +EMTextMessageBody* body = new EMTextMessageBody("How are you, du"); + easemob::EMMessagePtr msg = EMMessage::createSendMessage(loginUser, to, body); + + easemob::EMCallbackPtr callback(new easemob::EMCallback(mHandle, + [=]()->bool{ + window_->AddOutput("Msg send success"); + return true; + }, + [=](const easemob::EMErrorPtr error)->bool{ + window_->AddOutput( "Send message failed: " + error->mDescription); + return true; + })); + + msg->setCallback(callback); + chatClient->getChatManager().sendMessage(msg); +``` + +请注意 callback 的定义,为了能够获知 callback 的拥有者是否仍然存在,需要在您的类中定义`EMCallbackObserverHandle`。 + +``` +easemob::EMCallbackObserverHandle mHandle; +``` + +具体接口说明及使用可以参考 SDK 中的文档和 demo 程序。 \ No newline at end of file diff --git a/docs/document/v2/linux/releasenote.md b/docs/document/v2/linux/releasenote.md new file mode 100644 index 000000000..63e4247f4 --- /dev/null +++ b/docs/document/v2/linux/releasenote.md @@ -0,0 +1,6 @@ +# Linux SDK 更新日志 + +## 版本:V3.1.0 2016-03-24 + +1. 全新的通信协议:全新的基于消息同步的私有协议,在不稳定网络环境下更稳定更省流量,确保消息投递的可靠、顺序以及实时性,并具有更高的安全性。同时提供了更好的扩展性,将支持更多的对接和设备同步场景。 +2. 全新的 SDK:全面重构,将核心通信模块做了更好的封装;简化了接口,结构更清晰,集成更容易;提升了登录速度和弱网络环境下的可靠性。 \ No newline at end of file diff --git a/docs/document/v2/linux/techspec.md b/docs/document/v2/linux/techspec.md new file mode 100644 index 000000000..2230c31f7 --- /dev/null +++ b/docs/document/v2/linux/techspec.md @@ -0,0 +1,7 @@ +# 技术参数 + + +- 开发语言:C++11 +- 编译器:GCC 4.8.4 +- 已适配系统:Ubuntu 14.04、树莓派 +- 第三方库:libpthread、libsqlite3、libcurl、libssl、libz \ No newline at end of file diff --git a/docs/document/v2/privatization/easemob_app_token.md b/docs/document/v2/privatization/easemob_app_token.md new file mode 100644 index 000000000..1ef56108d --- /dev/null +++ b/docs/document/v2/privatization/easemob_app_token.md @@ -0,0 +1,82 @@ +# 使用环信 App Token 鉴权 + + + +环信提供的 REST API 需要 app token (管理员权限 token) 才能使用,即发送 HTTP 请求时需要携带 app token。本文介绍如何获取 app token。 + +另外,环信 Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力,详见 [Java Server SDK](/document/v2/server-side/java_server_sdk.html) 和 [PHP Server SDK](/document/v2/server-side/php_server_sdk.html)。 + +## 获取管理员权限 Token + +获取 token 时,服务器会返回 token 有效期,即响应中的 `expires_in` 字段的值。由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效。如果发现 token 使用异常,如返回 HTTP 状态码 401,请重新获取新的 token。 + +:::notice +请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封禁。 +::: + +### HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/token +``` + +#### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | + +#### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------- | :----- | :------- | :---------------------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `grant_type` | String | 是 | 授权方式。该参数设置为固定字符串 `client_credentials`,即客户端凭证模式。 | +| `client_id` | String | 是 | App 的 `client_id`,用于生成 app token 调用 REST API。详见环信即时通讯控制台的 `应用概览->应用详情`页面下的`应用信息-Client ID`。 | +| `client_secret` | String | 是 | App 的 `client_secret`,用于生成 app token 调用 REST API。详见环信即时通讯控制台的 `应用概览->应用详情`页面下的`应用信息-ClientSecret`。 | +| `ttl` | Long | 否 | token 有效期,单位为秒。
- 若传入该参数,token 有效期以传入的值为准。
- 若不传该参数,以 详见环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。
- 若设置为 `0`,则 token 永久有效。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示成功返回 token。响应 body 包含如下字段: + +| 参数 | 类型 | 描述 | +| :------------- | :----- | :--------------------------------------------------- | +| `access_token` | String | 有效的 Token 字符串。 | +| `expires_in` | Long | Token 有效时间,单位为秒,在有效期内不需要重复获取。 | +| `application` | String | 当前 App 的 UUID 值。 | + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 + +### 示例 + +#### 请求示例 + +```shell +curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ + "grant_type": "client_credentials", + "client_id": "YXA6i-Ak8Ol4Eei2l11ZjV-EAg", + "client_secret": "YXA6VunqiNxoB7IwXHInk1cGiXOOJfc", + "ttl": "1024000" + }' 'http://a1.easemob.com/easemob-demo/testapp/token' +``` + +#### 响应示例 + +```json +{ + "access_token": "YWMte3bGuOukEeiTkNP4grL7iwAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnKdc-ZgBPGgBFTrLhhyK8woMEI005emtrLJFJV6aoxsZSioSIZkr5kw", + "expires_in": 1024000, + "application": "8be024f0-e978-11e8-b697-5d598d5f8402" +} +``` diff --git a/docs/document/v2/privatization/easemob_user_token.md b/docs/document/v2/privatization/easemob_user_token.md new file mode 100644 index 000000000..12d14da55 --- /dev/null +++ b/docs/document/v2/privatization/easemob_user_token.md @@ -0,0 +1,219 @@ +# 使用环信 User Token 鉴权 + + + +客户端 SDK 不提供获取 token 的 API。如果你的用户在客户端使用环信 token 登录和鉴权,你需要在应用服务器(App Server)集成环信服务端获取 token 的 API,实现获取 Token 的业务逻辑。 + +环信服务端支持以下三种方式获取用户 token: + +- 通过“用户 ID”和“密码”获取:用户注册后,使用 “用户 ID” 和 “密码” 登录。登录成功后,你的 App Server 会为客户端提供一个用户 token。 + +- 通过“用户 ID”获取:用户在客户端上登录时,你的应用服务器会下发用户 token,SDK 使用用户 ID 和用户 token 进行登录。开发者可通过 RESTful API 在你的应用服务器上对用户 token 进行管理,设置有效期,并确定当用户不存在时是否自动创建用户。 + +- 基于 `AppKey、AppSecret` 和 `userId`(即注册用户时传入的 `username`)生成动态 Token。 + +## 前提条件 + +要调用环信即时通讯 RESTful API,请确保满足以下要求: + +- 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](uc_configure.html)。 +- 已从服务端获取 app token,详见 [App Token 鉴权](easemob_app_token.html)。 + +## 认证方式 + +环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 `Authorization` 字段: + +Authorization:`Bearer YourAppToken` + +为提高项目的安全性,环信使用 token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 App Token 鉴权](easemob_app_token.html)。 + +## 通过用户 ID 和密码获取用户 token + +### HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/token +``` + +#### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------- | :----- | :------- | :--------------------- | +| `host`| String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。| + +#### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------- | :----- | :------- | :---------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :----------- | :----- | :------- | :------------------- | +| `grant_type` | String | 是 | 授权方式。
- 若值为 `password`,通过用户 ID 和密码获取 token,需设置 `username` 和 `password` 参数。在该请求中,该参数需设置为 `password`。
- 若值为 `inherit`,通过用户 ID 获取 token,只需设置 `username` 参数。 | +| `username` | String | 是 | 用户 ID。 | +| `password` | String | 是 | 用户的登录密码。 | +| `ttl` | Long | 否 | token 有效期,单位为秒。
- 若传入该参数,token 有效期以传入的值为准。
- 若不传该参数,以 详见环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。
- 若设置为 `0`,则 token 永久有效。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 200,表示成功获取 token,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :-------------- | :----- | :---------------- | +| `access_token` | String | 有效的用户 token。 | +| `expires_in` | Long | token 有效期,单位为秒。在有效期内无需重复获取。 | +| `user` | JSON | 用户相关信息。 | +| `user.uuid` | String | 用户的 UUID。即时通讯服务为该请求中的 app 或用户生成的唯一内部标识,用于生成用户 token。 | +| `user.type` | String | 对象类型,无需关注。 | +| `user.created` | Long | 注册用户的 Unix 时间戳,单位为毫秒。 | +| `user.modified` | Long | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。 | +| `user.username` | String | 用户 ID。 | +| `user.activated` | Bool | 用户是否为活跃状态:
- `true`:用户为活跃状态。
- `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户的 API](/document/v2/server-side/account_system.html#账号解禁)对账号解除封禁。 | + +如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考[响应状态码](/document/v2/server-side/error.html)了解可能的原因。 + +### 示例 + +#### 请求示例 + +```shell +curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ + "grant_type": "password", + "username": "C", + "password": "1", + "ttl": "1024000" + }' 'http://XXXX/XXXX/XXXX/token' +``` + +#### 响应示例 + +```json +{ + "access_token": "YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A", + "expires_in": 1024000, + "user": { + "uuid": "aa471ee0-XXXX-XXXX-ace5-f90ff121234e", + "type": "user", + "created": 1637740861395, + "modified": 1637740861395, + "username": "c", + "activated": true + } +} +``` + +## 通过用户 ID 获取用户 token + +你通过用户 ID 获取用户 token。若用户 ID 不存在,你可以确定是否自动创建用户。 + +### HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/token +``` + +#### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------- | :----- | :------- | :---------------------------------- | +| `host`| String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。| + +#### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------- | :----- | :------- | :---------------------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization`| String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :----------- | :----- | :------- | :------------------- | +| `grant_type` | String | 是 | 授权方式。
- 若值为 `password`,通过用户 ID 和密码获取 token,需设置 `username` 和 `password` 参数。
- 若值为 `inherit`,通过用户 ID 获取 token,只需设置 `username` 参数。在该请求中,该参数需设置为 `inherit`。 | +| `username` | String | 是 | 用户 ID。 | +| `autoCreateUser` | Boolean | 是 | 当用户不存在时,是否自动创建用户。**自动创建用户时,需保证授权方式(`grant_type`)必须为 `inherit`,API 请求 header 中使用 App token 进行鉴权**。 | +| `ttl` | Long | 否 | token 有效期,单位为秒。
- 若传入该参数,token 有效期以传入的值为准。
- 若不传该参数,有效期默认为 60 天。此外,也可通过 环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。
- 若设置为 `0`,则 token 永久有效。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示成功获取 token。如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考[响应状态码](/document/v2/server-side/error.html)了解可能的原因。 + +关于响应包体中的字段的描述,详见[通过用户 ID 和密码获取 token 的 API](#通过用户 ID 和密码获取用户 token) 中的响应字段的描述。 + +### 示例 + +#### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' -d '{ + "username": "test2333", + "grant_type": "inherit", + "autoCreateUser": true, + "ttl": 1024000 + }' 'http://XXXX/XXXX/XXXX/token' +``` + +#### 响应示例 + +自动创建用户并获取 token 的响应如下: + +```json +{ + "access_token": "YWMthyeiFhbyEe2eMGeYZSLlT7sMrFep3U6BvVj7KSnNonUiDB-wFvIR7a5Ttx2-01MYAwMAAAGCfIeryQAPoAAsuveDfkUrePkEM2Hgy6SaOTeTx3ETgh5cnXcP_HfBPg", + "expires_in": 1024000, + "user": { + "uuid": "220c1fb0-XXXX-XXXX-ae53-b71dbed35318", + "type": "user", + "created": 1659946472753, + "modified": 1659946472753, + "username": "test2333", + "activated": true + } +} +``` + +## 生成动态的用户 Token + +动态 Token 的生成方法依赖 `AppSecret`,因此生成逻辑务必在客户的服务器侧完成,以免 `AppSecret` 泄露。 + +动态 Token 临时有效,有效期由你自行设置,建议不要太长。 + +你可以按照如下步骤生成动态用户 token: + +1. 在环信即时通讯控制台 创建应用,生成 `AppKey`、`Client ID` 和 `ClientSecret`。 + +2. 基于 `AppKey、AppSecret` 和 `userId`(即注册用户时传入的 `username`),参考如下示例生成 token。 + +``` +a. 获取当前时间戳,单位为秒。 + CurTime = 1686207557 +b. 设置过期时间,单位为秒。 + ttl = 600 +c. 生成 signature,将 clientId、appkey、userId、curTime、ttl、clientSecret 六个字段拼成一个字符串,进行 sha1 编码并将编码内容得到的字节转换为十六进制字符串。 + str = clientId + appkey + userId + curTime + ttl + clientSecret + shaBytes = sha1(str) + signature = fmt.Sprintf("%x", shaBytes) +d. 组装为 json。 + json = {"signature": "xx", "appkey":"xx#xx", "userId":"xx", "curTime":1686207557, "ttl": 600} +e. 将 token 类型 "dt-" 放到 json 转成的字符串前,生成最终的字符串。 + str = "dt-" + jsonStr +f. 进行 base64 编码,生成最终的 token。 + token = base64.urlEncode.encode(str) +``` + +3. 使用上述方法生成 Token 后,客户端 SDK 将该 Token 填入并登录,服务器校验成功后即登录成功。 + diff --git a/docs/document/v2/privatization/faq_integration_issues.md b/docs/document/v2/privatization/faq_integration_issues.md new file mode 100644 index 000000000..f7544a9a3 --- /dev/null +++ b/docs/document/v2/privatization/faq_integration_issues.md @@ -0,0 +1,53 @@ +# 集成类问题 + + + +## 如何实现跨 app 聊天 + +如果您需要两个 app 之间可以互相通信,只要将 AppKey 写成同一个就可以实现跨 app 聊天。同时,您需要在环信即时通讯云控制台上传对应 app 的推送证书(可以是多个),这样可以确保您的两个 app 都能收到推送。 + +## 获取设备本地日志文件 + +在排查移动端集成或者使用问题的时候,会遇到需要查看设备本地 SDK 的 log 来确认问题,在此提供移动端获取本地 log 的方法。 + +### Android + +#### 通过 API 获取 + +SDK 的 log 文件在 app 的安装目录中,可以通过 API 获取,获取时需要确保 SDK 已经完成初始化。 + +通过 API 获取 log 文件路径, 返回格式为 `xxxxx/xxxx/log.gz` + +```java +logPath = EMClient.getInstance().compressLogs(); +``` + +#### 从手机或者模拟器获取日志文件 + +前提条件 + +- 确保电脑上安装了 adb 工具,可以参考 [SDK Platform Tools](https://developer.android.com/studio/releases/platform-tools) +- 手机连接到电脑,adb 的使用可以参考:[Android Debug Bridge]( https://developer.android.com/studio/command-line/adb) + +```shell +adb pull /sdcard/android/data/(your_package_name)/(appkey)/core_log/easemob.log +``` + +### iOS + +#### 通过 API 获取 + +SDK 的 Log 文件在 app 的 sandbox 中,如需获取可通过 SDK 提供的`getLogFilesPath:` 获取,获取时需要确保SDK已经完成初始化。 + +``` +EMError *error = nil; +NSString *logPath = [EMClient.sharedClient getLogFilesPath:&error]; +``` + +返回格式为 `xxxxx/xxxx/log.gz`。 `error` 为错误信息,无错误是返回`nil`。 + +#### 从手机或者模拟器获取日志文件 + +通过 XCode debug 时,可以连接手机或者模拟器,找到应用的 sandbox 目录,然后提取日志文件。 + +App_Sandbox_path/Application Support/HyphenateSDK/easemobLog \ No newline at end of file diff --git a/docs/document/v2/privatization/faq_quality_issues.md b/docs/document/v2/privatization/faq_quality_issues.md new file mode 100644 index 000000000..1153edfa3 --- /dev/null +++ b/docs/document/v2/privatization/faq_quality_issues.md @@ -0,0 +1,90 @@ +# 质量类问题 + + + +## 如何排查 环信即时通讯 IM 单聊消息丢失 + +### 问题描述 + +在使用 环信即时通讯 IM 聊天的过程中,如果遇到用户 A 给用户 B 发消息,用户 B 没有接收到的情况(视为消息丢失),可以按照下面的说明进行排查。 + +### 问题原因 + +可能是以下原因: + +- 用户 A 消息发送失败; +- 接受消息的用户 ID 错误; +- 用户 B 把 A 设为黑名单了; +- 用户 B 在其他设备上登录时接收了消息; +- 用户 B 离线消息数量超过 500 条等。 + +### 排查方案 + +#### 在使用环信即时通讯 IM SDK 集成阶段测试用户出现消息丢失 + +分为用户 B 在线和不在线两种情况: + +- 用户 B 在线的情况下收不到用户 A 发的消息: + 1. 检查用户 A 发送的消息是否成功,可以根据 SDK 发消息方法返回的结果判断消息是否发送成功,如果发送失败,则用户 B 收不到消息。 + 2. 检查用户 A 给用户 B 发消息时,B 的 ID 是否正确,如果传的不是用户 B 的 环信即时通讯 IM ID,那么用户 B 收不到消息。 + 3. 检查用户 B 是否将用户 A 加入黑名单 ,如果用户 B 将用户 A 加入黑名单,那么用户 B 将收不到用户 A 发的消息,详见 [获取黑名单](/document/v2/server-side/user_relationship.html#获取黑名单列表)。 +- 用户 B 不在线时,用户 A 给用户 B 发消息,用户 B 重新登录后收不到消息: + 1. 可能存在用户 B 有在其他设备上登录的情况,把消息接收走了,所以在当前设备登录时将不再接收消息。 + 2. 确认用户 B 的离线数量是不是很大,如果超过 500 条,那么用户 B 只会收到最新的 500 条消息,超过500条的那部分消息将接收不到。 + + + +## 排查环信即时通讯 IM 群聊消息丢失 + +### 问题描述 + +用户有时反馈环信即时通讯 IM 丢消息,在用户 A 与用户 B 在同一个群组,用户 A 向群组中发消息这种情况下,我们建议先按以下步骤自查。如果没发现问题,可以提交工单由技术支持同事协助排查。 + +### 问题原因 + +可能的原因包括用户 A 构建消息时传的消息类型不是群聊类型、用户 A 消息发送失败、用户 B 不在群组中、用户 B 屏蔽了该群组消息、用户 B 被加入了群组黑名单、用户 B 在其他设备上登录时接收了消息以及用户 B 群组离线消息数量超过 200 条等。 + +### 排查方案 + +#### 一、App 未上线时,使用环信即时通讯 IM SDK 集成阶段测试用户出现消息丢失 + +- 用户 B 在线的情况下收不到用户 A 发的群组消息: + 1. 检查用户 A 在构建消息时,传的消息类型是不是群聊类型的,如果不是则用户 B 收不到用户 A 发的群组消息,详见 [Android 版构建消息](/document/v2/android/message_send_receive.html#发送文本消息) 或 [iOS 版构建消息](/document/v2/ios/message_send_receive.html#发送文本消息)。 + 2. 检查用户 A 发送的消息是否成功,可以根据 SDK 发消息方法返回的结果判断消息是否发送成功,如果发送失败,则用户 B 收不到用户 A 发送的群组消息。 + 3. 检查用户 A 给用户 B 发消息时,传的群组 ID 是否正确(是否为 A 与 B 共同加入的群组 ID),如果传的不是正确的群组 ID,那么用户 B 收不到消息用户 A 发的群组消息。 + 4. 检查用户 B 是否在群组中,可以获取群组详情,看群组中是否有用户 B,详见 [获取群组详情](/document/v2/server-side/group.html#获取群组详情)。 + 5. 检查用户 B 是否屏蔽了该群组消息,如果用户 B 屏蔽了该群组消息,那么将收不到用户 A 发的群组消息,详见 [Android 屏蔽和解除群消息](/document/v2/android/group_manage.html#屏蔽和解除屏蔽群消息) 或 [iOS 屏蔽和解除群消息](/document/v2/ios/group_manage.html#屏蔽和解除屏蔽群消息)。 + 6. 检查用户 B 是否被加入了群组黑名单,如果用户 B 被加入到了群组黑名单,那么将收不到用户 A 发的群组消息,详见 [获取群组黑名单](/document/v2/server-side/group.html#查询群组黑名单)。 +- 用户 B 不在线时,用户 A 向群组中发送消息,用户 B 重新登录后收不到群组消息: + 1. 可能存在用户 B 在其他设备上登录把消息接收走了的情况,则在当前设备登录时将不再接收消息。 + 2. 确认用户 B 所在的群组的离线数量是不是很大,如果超过200条,那么用户 B 只会收到最新的 200 条群组消息,超过 200 条的那部分群组消息将接收不到。 + +#### 二、App 已经上线后,线上用户出现群组消息丢失 + +1.先与 App 的用户确认是否存在以下情况: +- “用户 B 在线的情况下收不到用户 A 发的群组消息”的 3、4 和 5 的情况 +- “用户 B 不在线时,用户 A 向群组中发送消息,用户 B 重新登录后收不到群组消息”的 1 和 2 的情况。 + +2.若排除以上情况,可根据 App Key、发送者 ID 或消息 ID、消息发送时间在 环信即时通讯云控制台自行查询消息投递状态,具体操作如下: + +1. 登录环信即时通讯云控制台。 +2. 在首页的 应用列表 区域中,点击具体应用的 **操作** 栏中的 **管理**。 +3. 在界面左侧导航栏中选择**实时查询** > **IM消息投递查询**。 + +![img](@static/images/privitization/faq-msgdeliveryquery.jpg) + +## 参考 + +### 如何判断用户是否在线 + +在使用环信即时通讯 IM 基础聊天业务的场景下,处理特定业务需求时需知晓某些用户是否在线。为此,环信即时通讯 IM 提供单个用户以及批量用户是否在线状态的查询,详见 [用户在线状态回调](/document/v2/server-side/user_status_callback.html)。 + +除此之外,可以在 环信即时通讯云控制台 上查询用户连接状态,具体操作如下: + +1. 登录环信即时通讯云控制台。 +2. 在首页的 **应用列表** 区域中,点击具体应用的 **操作** 栏中的 **管理**。 +3. 在界面左侧导航栏中选择 **实时查询** > **IM用户连接状态**。 + +![img](@static/images/privitization/faq-userconnectionstatus.jpg) + +说明: 环信即时通讯 IM SDK 未提供直接查询用户是否在线的方法,客户端可以封装查询用户是否在线的接口调用或者让自己服务器端来调用再与自己客户端交互。 \ No newline at end of file diff --git a/docs/document/v2/privatization/uc_configure.md b/docs/document/v2/privatization/uc_configure.md index 94eefb7bf..7dfbf9102 100644 --- a/docs/document/v2/privatization/uc_configure.md +++ b/docs/document/v2/privatization/uc_configure.md @@ -1,4 +1,4 @@ -# 开通配置环信即时通讯 IM 服务 +# Console服务开通与配置 @@ -132,3 +132,15 @@ ![img](@static/images/privitization/deploy_ip_allow_list.png) 3. 单击 **确认**,则删除该 IP 地址。 + +### 用户管理 + +console后台支持管理用户,包括:用户注册、用户删除、修改用户信息、查看用户好友、查看用户黑名单、重置密码、发送REST消息、封禁、强制下线等操作. + +1. 在环信即时通讯云的左侧导航栏中,选择 **运营服务** > **用户管理**。 + +2. 单击 **创建IM用户** 按钮,注册新用户。 + +3. 在 **用户名单** 列表中,单击操作列的 **更多** 执行更多操作。 + +![img](@static/images/privitization/deploy_user_manage.png) diff --git a/docs/document/v2/privatization/uc_deploy.md b/docs/document/v2/privatization/uc_deploy.md index 636cc6b5c..bb3152936 100644 --- a/docs/document/v2/privatization/uc_deploy.md +++ b/docs/document/v2/privatization/uc_deploy.md @@ -1,4 +1,4 @@ -# 私有化部署流程说明 +# 私有化服务部署 @@ -58,7 +58,7 @@ ## 3、集成测试 -当服务端验证完成后,可通过下载需要的客户端 SDK 及 Demo 进行集成体验。环信客户端 SDK 已对 IM 核心服务完成封装, 通过调用 SDK API 接口,即可快速获得消息收发 、会话管理 、群组 、好友 、聊天室等功能。目前客户端 SDK 已覆盖 Windows 、Linux 、MacOS 、Android 、iOS 、Web 、小程序等多种平台,服务器端 SDK 已覆盖 Java 、PHP 等平台,[下载私有化客户端 SDK](http://docs-im-beta.easemob.com/private/im/uc_private.html#私有化-sdk-下载)。 +当服务端验证完成后,可通过下载需要的客户端 SDK 及 Demo 进行集成体验。环信客户端 SDK 已对 IM 核心服务完成封装, 通过调用 SDK API 接口,即可快速获得消息收发 、会话管理 、群组 、好友 、聊天室等功能。目前客户端 SDK 已覆盖 Windows 、Linux 、MacOS 、Android 、iOS 、Web 、小程序等多种平台,服务器端 SDK 已覆盖 Java 、PHP 等平台,[下载私有化客户端 SDK](uc_private.html#私有化-sdk-下载)。 示例一:以 Android 端 demo 体验为例 @@ -96,13 +96,7 @@ ![img](@static/images/privitization/deploy_wechat_code.png) -2. 提交工单 - -登录[环信通讯云管理后台](https://console.easemob.com/user/login),点击“服务支持-工单支持”,点击“进入工单系统” - -![img](@static/images/privitization/deploy_ticket.png) - -3. Geek 社区 +2. Geek 社区 [Geek 开发者社区](http://www.imgeek.org/)里面的环信专区/环信技术交流板块提供了很多常见问题的讨论和解答,您也可以发帖提问,我们的技术和服务人员会尽力解答您的疑问! diff --git a/docs/document/v2/privatization/uc_glossary.md b/docs/document/v2/privatization/uc_glossary.md new file mode 100644 index 000000000..470d70f9d --- /dev/null +++ b/docs/document/v2/privatization/uc_glossary.md @@ -0,0 +1,201 @@ +# 术语表 + + + +## 环信即时通讯 IM SDK + +环信即时通讯 IM SDK 是环信提供的用于实现即时通讯,比如:单聊、群聊、聊天室的 SDK。 + +### 环信即时通讯 IMKit + +IMKit 是环信即时通讯 IM SDK 的一个开源 UI 组件,提供应用内聊天的常用页面和 UI 组件,帮助开发者快速构建应用的 UI。 + +## 环信即时通讯 CallKit + +CallKit 提供应用内聊天中音视频通话的页面和 UI 组件,帮助开发者快速构建音视频通话功能。 + +### 环信通讯云控制台(Easemob Console) + +[环信通讯云控制台](uc_configure.md)是环信提供给开发者管理环信各项服务的工具。 + +## Demo + +环信即时通讯 IM 示例开源项目,目前支持 Android、iOS 和 Web 平台。 + +## 会话和消息 + +### 会话 + +会话是一个单聊、群聊、聊天室或者子区所有消息的集合。用户需在会话中发送消息或查看历史消息或清空历史消息等操作。 + +### 会话列表 + +会话列表是指会话依照一定顺序排列的列表,会话的排列顺序依赖于会话中最近一条消息的接收时间等因素。 + +### 广播消息 + +广播消息是指通过 RESTful API 对应用内的所有用户发送消息。当用户离线时,消息会自动转换为系统离线推送。 + +### 离线消息 + +当接收方不在线时,环信即时通讯 IM 服务器会暂时保存消息,用户上线时,会接收到服务器保存的离线消息。私有部署即时通讯服务离线消息保存时长可支持自定义。单聊和群聊支持离线消息,聊天室不支持离线消息。 + +### 历史消息 + +环信即时通讯 IM 服务器会保存历史消息以供查询。开发者可以通过 RESTful API 下载历史消息压缩包文件。 + +### 漫游消息 + +多端登录时,用户在其中一端发送的消息会同步到所有其他客户端,此类消息称为漫游消息。 + +### 文本消息 + +消息内容是普通文本,其中可以包括超链接,客户端收到消息后存入数据库、计入未读消息数。表情消息为开发者自定义。实质上是发文本消息。接收方收到文本消息后,首先查询文本消息是否是表情消息,如果是,则显示该文本消息为对应的表情图片。 + +### 图片消息 + +图片消息内容属于附件类型消息,内容图片 URL 地址、尺寸、图片大小等信息。最大支持 10 MB。 + +### 位置消息 + +消息内容为地理位置标题、经度和纬度信息。 + +### 语音消息 + +语音数据属于附件类型,需要提供时长信息,以秒为单位。最大支持 10 MB。 + +### 视频消息 + +消息内容为视频文件的 URL 地址、时长、大小、格式等信息,默认支持 10 MB。 + +### 文件消息 + +消息内容为文件的 URL 地址、大小、格式等信息,格式不限,默认支持 10 MB。 + +### 透传消息 + +透传消息可视为一条指令,通过发送这条指令给对方,通知对方要执行的操作,对方收到消息可自定义处理。透传消息不会存入本地数据库中,在 UI 上不显示,也不计入未读消息。具体功能可以根据自身业务需求自定义,例如实现头像或昵称的更新等。 + +### 消息自定义扩展 + +当基础的消息类型不满足需求时,可以使用消息自定义扩展增强基础消息类型,例如消息中需要携带被回复的消息内容等场景。 + +使用扩展后,消息大小不能超过原类型消息的大小。消息自定义扩展作为消息内容会存入本地数据库。 + +### 自定义消息 + +发者自定义的消息类型,例如红包消息、石头剪刀布等形式的消息。 + +### 消息回调 + +消息回调,即聊天服务器会在事件发生之前或之后,向客户的应用服务器发送请求,应用服务器可据此进行必要的数据同步,或者根据业务需求干预事件的后续处理流程。 + +### 消息云存储 + +将用户发送的单聊、群聊、聊天室消息存储到聊天服务器,方便用户在更换设备或删除本地消息后,通过服务端获取历史消息。私有部署即时通讯服务消息存储时间可支持自定义。 + +## 用户相关 + +### 用户 ID + +用户 ID 即用户名,是 App Key 内用户的唯一标识,不同于即时通讯系统服务器为用户创建的 UUID。 + +### UUID + +即时通讯服务器为 App Key 内用户创建的唯一 ID,不同于用户 ID。 + +### 用户属性 + +用户属性指用户的信息,如用户昵称、头像、邮箱、电话、性别、签名、生日等。例如,在招聘场景下,利用用户属性功能,可以存储性别、邮箱、用户类型(面试者)、职位类型(Web 研发)等。当查看用户信息时,可以直接查询服务器存储的用户属性信息。 + +### 离线 + +离线是指用户成功登出环信即时通讯 IM 系统或与即时通讯 IM 系统断开连接后的状态。用户登出即时通讯 IM 系统之后,无法发送和接受消息,在下次登录后可以接收到离线消息。 + +## 封禁用户 + +禁止用户使用即时通讯 IM 服务。封禁后,用户无法连接即时通讯 IM 服务器。 + +### 用户黑名单 + +用户将不会接收黑名单中用户发送的消息。 + +## 单聊 + +单聊即一对一聊天,支持全类型消息。参与聊天的双方可以是好友也可以是陌生人。 + +## 群组 + +群组是支持多人沟通的即时通讯系统,成员关系相对稳定。所有群成员可在群中收发送消息。当群成员离线时,可以收到推送消息。群组分为公开群和私有群,公开群可以被搜索到,非群成员可以加入;私有群不能被搜索到,需要群主或群管理员添加用户进入。群组成员支持多种角色:群主、群管理员、群成员。群组提供丰富的管理能力,例如,群组禁言、黑名单和白名单等。 + +### 群主 + +群主即群组的创建者,在群中拥有最高权限,可以指定管理员、解散群组、更改群组信息以及对群组成员进行管理。 + +群主也可以将群主权限转移给群组其他成员。 + +### 群管理员 + +由群主授权,协助进行管理,拥有一定管理权限。可以对群组成员进行管理。 + +### 群成员 + +群组的普通成员,可以收发消息和查看群组描述信息,不具备群组管理权限。 + +### 群组黑名单 + +群主和管理员可以将群组成员加入黑名单,加入群黑名单的用户不能在群中发送消息。 + +### 群组白名单 + +群主和管理员可以将群组成员加入白名单。群组开启全局禁言时,只有白名单中的用户可以在群组中发送消息。 + +## 聊天室 + +聊天室是支持多人加入的组织。聊天室中的成员没有固定关系,用户离线后,超过 2 分钟会自动退出聊天室。聊天室成员在离线后,不会收到推送消息。聊天室可以应用于直播、消息广播等。 + +### 聊天室黑名单 + +聊天室创建者和管理员可以将聊天室成员加入黑名单,被加入聊天室黑名单的用户不能在聊天室中发送消息。 + +### 聊天室白名单 + +聊天室创建者和管理员可以将聊天室成员加入白名单,聊天室开启全局禁言时,只有白名单中的用户可以在聊天室中发送消息。 + +### 聊天室创建者 + +聊天室的创建者,在聊天室中拥有最高权限。可以指定管理员、解散聊天室、更改聊天室信息、对聊天室成员进行管理。 + +### 聊天室管理员 + +由聊天室所有者授权,协助进行管理,拥有一定管理权限。可以对聊天室成员进行管理。 + +### 聊天室成员 + +聊天室的普通成员,不具备聊天室管理权限。 + +## RESTful 接口 + +环信即时通讯 IM 的服务器端接口都是通过 RESTful 服务方式提供的,RESTful API 基于最简单的 HTTP 协议,在各个编程语言中都提供了良好的支持。 + +环信即时通讯 IM RESTful 平台提供一个多租户用户体系,以集合(Collection)的形式的形式管理资源,一个集合包括数据库、企业、应用、用户、群组、消息和文件等。 + +## 离线推送 + +离线推送是指当应用被杀死时,通过厂商推送接收消息。iOS 设备使用苹果推送通知服务(APNs),Android 设备为谷歌云消息传递服务(FCM)、华为推送、小米推送、魅族推送、OPPO 推送和 vivo 推送。 + +## 在线状态订阅 + +用户在线状态(即 Presence)包含用户的在线、离线以及自定义状态。环信即时通讯 IM 提供发布、订阅和查询用户的在线状态的功能。 + +## 消息表情回复 Reaction + +在单聊和群聊中对消息添加、删除表情。表情可以直观地表达情绪,利用 Reaction 可以提升用户的使用体验。同时在群组中,利用 Reaction 可以发起投票,根据不同表情的追加数量来确认投票。 + +## 子区 + +子区是建立在群组内一条消息上的支持多人沟通的即时通讯系统,子区成员是群组成员的子集。 + +## 子区消息 + +子区消息是子区内发送和接收的消息。 \ No newline at end of file diff --git a/docs/document/v2/privatization/uc_introduction.md b/docs/document/v2/privatization/uc_introduction.md new file mode 100644 index 000000000..d0e363a1e --- /dev/null +++ b/docs/document/v2/privatization/uc_introduction.md @@ -0,0 +1,130 @@ +# 产品概述 + + + +环信即时通讯私有化服务是基于 IM 核心技术实现的可私有化部署解决方案。本方案可适配内网物理服务器集群、公有云以及私有云等任意部署环境,提供功能完备、安全可靠、易于扩展的即时通讯平台。整体通讯平台架构主要由三部分组成,分别为客户端、服务端、Web 控制台。 + +- **客户端**:采用 SDK 形式,对核心通信模块进行封装,提供场景功能接口,覆盖多种平台(包括:Android、iOS、Web、小程序、 Windows/Mac OS、Linux),支持快速集成终端用户应用。 +- **服务端**:采用 Java 和 Erlang 语言编写,可支持用户高并发连接和系统动态调配,高效处理用户长连接相关的服务和用户管理、推送等无状态服务。同时提供服务端 REST API 和 Java Server SDK 接口,便于完成即时通讯软件中服务的控制、数据的转发存储工作。 +- **Web 控制台**:是基于 B/S 模式的可视化操作平台,可支持开通与配置应用功能,查询各类 IM 服务情况,管理与维护用户体系(增、删、改、查),满足系统管理员、开发者等多种业务角色使用需求,提升业务集成与运营管理效率。 + + +## 平台架构 + +![环信 IM 后台](@static/images/privitization/framework.jpg?w=50) + + +## 集成概述 + +当私有化服务部署后,开发者主要需要了解服务器端集成和客户端集成内容。 + +![img](@static/images/product/integration-overview.png) + +服务端集成请看:[环信即时通讯 REST API 概览](/document/v2/server-side/overview.html)。 + +客户端 Demo 体验请查看: + +[Android Demo(EaseIM App)体验](/document/v2/android/demo.html) + +[iOS Demo(EaseIM App)体验](/document/v2/ios/demo.html) + +客户端集成请查看相应的环信 SDK 开发文档: + +[环信即时通讯 IM Android 快速开始](/document/v2/android/quickstart.html); + +[环信即时通讯 IM iOS 快速开始](/document/v2/ios/quickstart.html); + +[环信即时通讯 IM Web 快速开始](/document/v2/web/quickstart.html)。 + +## 功能概述 + +用环信即时通讯能实现以下功能: + +### 单聊 + +环信单聊,支持丰富的消息类型,以及离线消息、漫游消息等功能。 + +### 群聊 + +环信群聊,支持丰富的消息类型,支持完整的群组管理能力,包含发布群公告、设置群角色等。 + +### 用户管理 + +提供用户体系管理能力,如:好友管理、黑名单管理等。支持用户资料存储,包括:头像、昵称、自定义用户信息等。 + +### 丰富的消息类型 + +支持单聊/群聊中,发送文本、表情、图片、语音、视频、地理位置、文件,以及红包和礼物等的自定义消息。 + +### 第三方消息推送 + +消息推送指当应用在后台运行,或进程被杀时,用户处于离线状态,新消息在发送至环信服务器后,会被转发至第三方推送服务器进行推送,以确保该消息依然可以送达客户端。推送消息在安卓端是使用 Firebase Cloud Message(FCM) 实现,在 iOS 端使用 Apple Push Notification service(APNs) 实现。 + +### 多端消息同步 + +环信支持一个账号同时登录多台设备,可实现终端用户的消息通过服务器保存和同步,保证各端均能收发消息同步。 + +### 消息撤回 + +消息发出后可以进行消息撤回,提供 SDK 和 REST API 端两种撤回方式。 + +## 适用场景 + +环信适用于端到端实时消息沟通的场景: + +- 应用内聊天(如:陌生人社交、相亲等) + - 支持丰富的消息类型、好友关系管理 + - 支持群管理能力、群公告设置、群角色设置等 +- 应用内通知 + - 支持广播消息、自定义通知消息等 + - 支持用户管理,包括储存用户信息、用户封禁等 +- 视频/语音直播 + - 支持聊天室管理能力 + - 支持丰富类型的聊天室消息,包括弹幕、红包、礼物等 +- 企业协作 + - 支持用户管理,设置企业组织架构、好友关系管理 + - 支持群管理能力、群公告设置、群附件发送、群角色设置等 +- 买家卖家沟通 + - 支持订单通知、问候语设置、自定义消息发送 + - 支持卖家内部管理、公告设置、成员管理等 +- 线上问诊 + - 支持丰富的消息类型,图文病情描述、语音消息等 + - 支持用户信息存储、用户身份管理等 + +## 产品优势 + +环信主要有以下优势: + +### 部署多样化 + +环信即时通讯系统支持 Linux 裸系统、容器化等多种部署方式。不仅可以提供更灵活、更便捷、更稳定的平台性能,同时容器化部署可实现自动部署,具备服务自动发现、服务自动负载均衡等特点。 + +### 高可用 + +环信即时通讯系统具备高可用特性,当系统内某一个节点或主机出现宕机后,该故障节点上的所有服务会自动转移到其他节点上而不会引发服务中断,保障系统可用性。 + +### 易扩展 + +环信即时通讯系统服务架构支持弹性扩展,系统内所有资源可在各节点之间实现灵活调度,当 CPU、内存等计算资源利用率较高时,可通过横向添加 node 实现平滑扩容。 + +### 安全性 + +环信即时通讯系统实现通讯全流程安全加密,支持客户端敏感信息加密存储、服务器密钥权限管理、消息传输过程私有协议加密以及用户信息隐私保护等措施。 + +### 国产化 + +环信即时通讯系统严格遵循国家法律法规和技术标准规范,积极响应国内自主可控、安全可控要求,从 IT 基础设置、操作系统、数据库等方面进行国产化升级,满足信创环境部署要求。 + +### 多平台 + +环信即时通讯 IM 支持 Android、iOS、Web 等平台,而且各平台之间可互通。下表为即时通讯支持的各平台版本: + +| 平台 | 支持的版本 | +| ------------ | ------------------------------------------------------------ | +| Android | Android 5.0 或以上版本(API 级别 21 或以上) | +| iOS | iOS 10.0 或以上版本 | +| Web |
- Internet Explorer 9 或以上
- FireFox 10 或以上
- Chrome 54 或以上 Safari 6 或以上
- Edge 12 或以上
- Opera 58 或以上
- iOS Safari 7 或以上
- Android Browser 4.4 (KitKat) 或以上 | +| Unity | Unity 2017 或以上版本 | +| Windows | Windows 10 或以上版本 | +| React Native | React Native 0.63.4 或以上版本 | +| Flutter | Flutter 2.10 | \ No newline at end of file diff --git a/docs/document/v2/privatization/uc_limitation.md b/docs/document/v2/privatization/uc_limitation.md new file mode 100644 index 000000000..e09779593 --- /dev/null +++ b/docs/document/v2/privatization/uc_limitation.md @@ -0,0 +1,88 @@ +# 限制条件 + + + +本文简要介绍环信即时通讯 IM 的使用限制条件,包括调用频率、字符串大小和编码格式等。 + +## 用户注册 + +- 用户 ID:长度不能超过 64 字节,支持以下字符集: + - 26 个小写英文字母 a-z; + - 26 个大写英文字母 A-Z; + - 10 个数字 0-9; + - “_”, “-”, “.”。 + +:::notice +- 该参数不区分大小写,因此 Aa 和 aa 为相同用户名; +- 请确保同一个 app 下,用户 ID 唯一; +- 用户 ID 是会公开的信息,请勿使用 UUID、邮箱地址、手机号等敏感信息。 +::: +- 批量注册每次最多 60 个用户 ID。 + +## 好友数限制 + +私有部署用户好友数无上限 + +## 消息存储时长限制 + +私有部署消息存储时长支持自定义,默认配置14天,可在部署前约定存储时间: + +## 群组限制 + +私有部署群组有如下限制: + +- 群组总数上限:100,000 个 +- 群成员数:2000人/群,可支持调整至8000人/群 +- 用户可加入群组数:无限制 + + +群组属性和群成员属性的限制如下: +- 群组名称,字符串类型,最大长度为 128 字符。 +- 群组描述,字符串类型,最大长度为 512 字符。 +- 群组扩展信息,例如可以给群组添加业务相关的标记,最大长度为 1,024 字符。 +- 单个群成员的自定义属性(key-value)总长度不能超过 4 KB。对于单个自定义属性,属性 key 不能超过 16 字节,value 不能超过 512 个字节。 + +## 聊天室限制 + +私有部署聊天室有如下限制: +- 聊天室总数:无限制。 +- 聊天室名称,用户自定义,字符串类型,最大长度为 128 字符。 +- 聊天室描述,用户自定义,字符串类型,最大长度为 512 字符。 + +### 聊天室自定义属性(key-value) + +每个聊天室最多可有 100 个自定义属性,每个应用的聊天室自定义属性总大小不超过 10 GB。 + +聊天室自定义属性为键值对(key-value)结构,单个 key 不能超过 128 个字符,支持以下字符集: +- 26 个小写英文字母 a-z; +- 26 个大写英文字母 A-Z; +- 10 个数字 0-9; +- “_”, “-”, “.”。 + +每个聊天室属性 value 不能超过 4096 个字符。 + +## 调用频率限制 + +私有部署Rest API 调用频率支持设置无限制。 + +## 消息大小限制 + +对于不同的消息类型,消息长度限制如下: + +| 消息类型 | 消息长度限制 | +| :------------- | :----------------------------------- | +| 文本消息 | 3 KB | +| 图片消息 | 图片不能超过 10 MB,图片消息大小限制为 3 KB。 | +| 语音消息 | 音频文件不能超过 10 MB,语音消息大小限制为 3 KB。 | +| 视频消息 | 视频文件不能超过 10 MB,视频消息大小限制为 3 KB。 | +| 文件消息 | 附件大小不能超过 10 MB,文件消息大小限制为 3 KB。 | +| 透传消息 | 3 KB | +| 自定义消息 | 3 KB | + +## 用户属性大小限制 + +默认单一用户的属性总长不得超过 2 KB。默认一个 app 下所有用户的属性总长度不得超过 10 GB。 + +## 消息撤回 + +默认撤回时限为 2 分钟,可根据 App Key 在环信即时通讯云管理后台单独设置。 diff --git a/docs/document/v2/privatization/uc_private.md b/docs/document/v2/privatization/uc_private.md index 468bb6df4..5d5cbe6bc 100644 --- a/docs/document/v2/privatization/uc_private.md +++ b/docs/document/v2/privatization/uc_private.md @@ -1,46 +1,14 @@ -# 私有化即时通讯 +# 私有化 SDK 下载 - -[下载私有化 SDK >>](#私有化-sdk-下载)。 -环信即时通讯私有化服务是基于 IM 核心技术实现的可私有化部署解决方案。本方案可适配内网物理服务器集群、公有云以及私有云等任意部署环境,提供功能完备、安全可靠、易于扩展的即时通讯平台。整体通讯平台架构主要由三部分组成,分别为客户端、服务端、Web 控制台。 - -- **客户端**:采用 SDK 形式,对核心通信模块进行封装,提供场景功能接口,覆盖多种平台(包括:Android、iOS、Web、小程序、 Windows/Mac OS、Linux),支持快速集成终端用户应用。 -- **服务端**:采用 Java 和 Erlang 语言编写,可支持用户高并发连接和系统动态调配,高效处理用户长连接相关的服务和用户管理、推送等无状态服务。同时提供服务端 REST API 和 Java Server SDK 接口,便于完成即时通讯软件中服务的控制、数据的转发存储工作。 -- **Web 控制台**:是基于 B/S 模式的可视化操作平台,可支持开通与配置应用功能,查询各类 IM 服务情况,管理与维护用户体系(增、删、改、查),满足系统管理员、开发者等多种业务角色使用需求,提升业务集成与运营管理效率。 - -## 私有化服务优势 - -### 部署多样化 - -环信即时通讯系统支持 Linux 裸系统、容器化等多种部署方式。不仅可以提供更灵活、更便捷、更稳定的平台性能,同时容器化部署可实现自动部署,具备服务自动发现、服务自动负载均衡等特点。 - -### 高可用 - -环信即时通讯系统具备高可用特性,当系统内某一个节点或主机出现宕机后,该故障节点上的所有服务会自动转移到其他节点上而不会引发服务中断,保障系统可用性。 - -### 易扩展 - -环信即时通讯系统服务架构支持弹性扩展,系统内所有资源可在各节点之间实现灵活调度,当 CPU、内存等计算资源利用率较高时,可通过横向添加 node 实现平滑扩容。 - -### 安全性 - -环信即时通讯系统实现通讯全流程安全加密,支持客户端敏感信息加密存储、服务器密钥权限管理、消息传输过程私有协议加密以及用户信息隐私保护等措施。 - -### 国产化 - -环信即时通讯系统严格遵循国家法律法规和技术标准规范,积极响应国内自主可控、安全可控要求,从 IT 基础设置、操作系统、数据库等方面进行国产化升级,满足信创环境部署要求。 - -## 私有化 SDK 下载 环信客户端及服务端 SDK 已对 IM 核心服务完成封装,通过调用 SDK API 接口,即可快速获得消息收发、会话管理、群组、好友、聊天室等功能,目前客户端 SDK 已覆盖 Windows、Linux、MacOS、Android、iOS、Web、小程序等多种平台,服务器端 SDK 已覆盖 Java、PHP 等平台,各端 SDK 下载及开发指南如下所示。 :::tip -1. 若要体验环信即时通讯 IM 的功能,可下载[公有云 Demo](https://www.easemob.com/download/demo)。 -2. 若要体验私有化 Demo,需下载下表中对应平台的 Demo,然后在登录页面的**服务器配置**区域完成配置。 -3. 若要集成,需选择下表中的 SDK 及 Demo 版本,按照下表中**开发指南**一列的文档配置私有化环境信息。 +1. 若要体验私有化 Demo,需下载下表中对应平台的 Demo,然后在登录页面的**服务器配置**区域完成配置。 +2. 若要集成,需选择下表中的 SDK 及 Demo 版本,按照下表中**开发指南**一列的文档配置私有化环境信息。 :::
单端/多端登录
@@ -73,41 +41,41 @@

Android

@@ -129,13 +97,13 @@

Windows(C#)

@@ -149,7 +117,7 @@

下载 SDK

@@ -163,7 +131,7 @@

下载 SDK

@@ -171,13 +139,13 @@

uni-app

@@ -185,13 +153,13 @@

小程序

@@ -199,25 +167,27 @@

Unity

+ - @@ -229,13 +199,13 @@

Java

@@ -249,7 +219,7 @@

下载 SDK

diff --git a/docs/document/v2/react-native/error.md b/docs/document/v2/react-native/error.md index d5b27ef51..4d9526bf8 100644 --- a/docs/document/v2/react-native/error.md +++ b/docs/document/v2/react-native/error.md @@ -2,6 +2,6 @@ -[Android 平台](/document/android/error.html) +[Android 平台](/document/v2/android/error.html) -[iOS 平台](/document/ios/error.html) \ No newline at end of file +[iOS 平台](/document/v2/ios/error.html) \ No newline at end of file diff --git a/docs/document/v2/react-native/group_attributes.md b/docs/document/v2/react-native/group_attributes.md index 0faf432de..4ad815e8f 100644 --- a/docs/document/v2/react-native/group_attributes.md +++ b/docs/document/v2/react-native/group_attributes.md @@ -18,8 +18,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/react-native/group_manage.md b/docs/document/v2/react-native/group_manage.md index d72c6622f..09cb98036 100644 --- a/docs/document/v2/react-native/group_manage.md +++ b/docs/document/v2/react-native/group_manage.md @@ -21,8 +21,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/react-native/group_members.md b/docs/document/v2/react-native/group_members.md index 04e17703a..a61ed3a86 100644 --- a/docs/document/v2/react-native/group_members.md +++ b/docs/document/v2/react-native/group_members.md @@ -22,9 +22,9 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); - 了解群成员角色,详见 [群组概述](group_overview.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 + ## 实现方法 diff --git a/docs/document/v2/react-native/message_manage.md b/docs/document/v2/react-native/message_manage.md index f92db62dd..d8fdab424 100644 --- a/docs/document/v2/react-native/message_manage.md +++ b/docs/document/v2/react-native/message_manage.md @@ -18,7 +18,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -120,7 +120,7 @@ ChatClient.getInstance() 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。 -你可以调用 `fetchHistoryMessages` 方法从服务器分页获取指定会话的历史消息。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 +你可以调用 `fetchHistoryMessages` 方法从服务器分页获取指定会话的历史消息。 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。 @@ -202,8 +202,7 @@ ChatClient.getInstance() #### 单向删除服务端会话及其历史消息 -你可以调用 `removeConversationFromServer` 方法删除服务器端会话和历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息,对本地的会话无影响,但会删除本地消息,而其他用户不受影响。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 - +你可以调用 `removeConversationFromServer` 方法删除服务器端会话和历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息,对本地的会话无影响,但会删除本地消息,而其他用户不受影响。 示例代码如下: ```typescript diff --git a/docs/document/v2/react-native/message_modify.md b/docs/document/v2/react-native/message_modify.md index f3e972259..b5fd7429f 100644 --- a/docs/document/v2/react-native/message_modify.md +++ b/docs/document/v2/react-native/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。 ::: -你可以调用 `modifyMessageBody` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `modifyMessageBody` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。 示例代码如下: diff --git a/docs/document/v2/react-native/message_receipt.md b/docs/document/v2/react-native/message_receipt.md index 24dbd0ea2..fffdf339c 100644 --- a/docs/document/v2/react-native/message_receipt.md +++ b/docs/document/v2/react-native/message_receipt.md @@ -3,7 +3,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -36,8 +36,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 @@ -230,7 +230,7 @@ ChatClient.getInstance() 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 消息发送方需要知道群组消息是否已读,需要监听 `onGroupMessageRead` 事件。 diff --git a/docs/document/v2/react-native/message_send_receive.md b/docs/document/v2/react-native/message_send_receive.md index a947c2f99..9c82fa32b 100644 --- a/docs/document/v2/react-native/message_send_receive.md +++ b/docs/document/v2/react-native/message_send_receive.md @@ -39,7 +39,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -135,7 +135,7 @@ ChatClient.getInstance().chatManager.removeAllMessageListener(); ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```typescript ChatClient.getInstance() diff --git a/docs/document/v2/react-native/message_translation.md b/docs/document/v2/react-native/message_translation.md index 1cc48d951..aabe0029e 100644 --- a/docs/document/v2/react-native/message_translation.md +++ b/docs/document/v2/react-native/message_translation.md @@ -12,7 +12,7 @@ 开始前,请确保满足以下条件: 1. 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 3. 已在 [环信即时通讯云控制台](https://console.easemob.com/user/login) 开通翻译功能。 4. 该功能由 Microsoft Azure Translation API 提供,因此开始前请确保你了解该功能支持的目标语言。详见 [翻译语言支持](https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support)。 diff --git a/docs/document/v2/react-native/multi_device.md b/docs/document/v2/react-native/multi_device.md index 78baee4a0..f227112ef 100644 --- a/docs/document/v2/react-native/multi_device.md +++ b/docs/document/v2/react-native/multi_device.md @@ -11,7 +11,7 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +24,7 @@ -
-

3.9.1

+

4.1.2

-

下载 SDK 及 Demo 体验 Demo

+

下载 SDK 及 Demo 体验 Demo

-

查看

+

查看

-

Web

+

iOS

-

4.0.4

+

4.1.1

-

• React: 下载 SDK 及 Demo 体验 Demo
• Vue 2: 下载 SDK 及 Demo
• Vue 3: 下载 SDK 及 Demo

+

下载 SDK 及 Demo 

-

查看

+

查看

-

iOS

+

Web

-

3.9.1

+

4.2.0

-

下载 SDK 及 Demo 

+

• React: 下载 SDK 及 Demo 体验 Demo
• Vue 2: 下载 SDK 及 Demo
• Vue 3: 下载 SDK 及 Demo

-

查看

+

查看

-

1.0.2

+

1.2.0

-

下载 SDK

+

下载 SDK

-

查看

+

查看

-

查看

+

查看

-

查看

+

查看

-

4.0.4

+

4.2.0

-

下载 SDK 及 Demo

+

下载 SDK 及 Demo

-

查看

+

查看

-

4.0.4

+

4.2.0

-

下载 SDK 及 Demo

+

下载 SDK 及 Demo

-

查看

+

查看

-

3.9.0

+

1.2.0

+
+

下载 SDK

-

下载 SDK

+

查看

 

Flutter

-

3.9.0+2

+

4.1.0

-

下载 SDK

+

下载 SDK

-

查看

+

查看

-

0.6.3

+

0.7.5

-

下载 SDK

+

下载 SDK

-

查看

+

查看

-

查看

+

查看

+
@@ -38,7 +38,7 @@ - +
单端/多端登录
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
@@ -62,8 +62,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 的套餐包,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 @@ -151,7 +151,7 @@ ChatClient.getInstance() 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/react-native/overview.md b/docs/document/v2/react-native/overview.md index 413769d64..bbc0c2eed 100644 --- a/docs/document/v2/react-native/overview.md +++ b/docs/document/v2/react-native/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -71,15 +71,15 @@ ChatClient.getInstance() - 通过控制台注册。 - 通过 REST API 接口注册。 -- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。 +- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。 ### 控制台注册 -控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。 +控制台的注册请到 **运营服务->用户管理** 页面下进行注册。 ### REST API 注册 -请参考 [注册用户](/document/server-side/account_system.html#注册用户)。 +请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ### SDK 注册 @@ -101,7 +101,7 @@ ChatClient.getInstance() - 用户 ID + 密码 - 用户 ID + token -手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -120,7 +120,7 @@ ChatClient.getInstance() }); ``` -**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/react-native/presence.md b/docs/document/v2/react-native/presence.md index 6bae9d171..ae84dda05 100644 --- a/docs/document/v2/react-native/presence.md +++ b/docs/document/v2/react-native/presence.md @@ -35,8 +35,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/react-native/quickstart.md b/docs/document/v2/react-native/quickstart.md index b242004a2..7542e8107 100644 --- a/docs/document/v2/react-native/quickstart.md +++ b/docs/document/v2/react-native/quickstart.md @@ -41,7 +41,7 @@ ### 其他要求 -有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 项目设置 @@ -494,4 +494,4 @@ demo 的界面: ## 更多操作 -为了保证安全性,我们推荐使用 `username + password + token` 方式创建用户,token 在你的 app server 生成供客户端获取,当 token 过期时你需要重新获取。详见 [获取 user token](/product/easemob_user_token)。 +为了保证安全性,我们推荐使用 `username + password + token` 方式创建用户,token 在你的 app server 生成供客户端获取,当 token 过期时你需要重新获取。详见 [获取 user token](/document/v2/server-side/easemob_user_token.html)。 diff --git a/docs/document/v2/react-native/reaction.md b/docs/document/v2/react-native/reaction.md index 17e7b40fe..7fa2a7210 100644 --- a/docs/document/v2/react-native/reaction.md +++ b/docs/document/v2/react-native/reaction.md @@ -24,8 +24,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/react-native/releasenote.md b/docs/document/v2/react-native/releasenote.md index 2bf6c4f2a..92a76f9a7 100644 --- a/docs/document/v2/react-native/releasenote.md +++ b/docs/document/v2/react-native/releasenote.md @@ -240,11 +240,10 @@ - 消息表情回复; - 管理子区等。 -关于详细功能概述请参见: [产品概述](/product/introduction.html). 具体集成请参考以下文档: -- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html) +- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html) - [环信即时通讯 IM React-Native 快速开始](quickstart.html) - [消息管理 React Native](message_overview.html) - [群组](group_overview.html) diff --git a/docs/document/v2/react-native/room_attributes.md b/docs/document/v2/react-native/room_attributes.md index 0fb77c77d..3bbc574c9 100644 --- a/docs/document/v2/react-native/room_attributes.md +++ b/docs/document/v2/react-native/room_attributes.md @@ -20,8 +20,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/react-native/room_manage.md b/docs/document/v2/react-native/room_manage.md index 43b101b8c..0a4466072 100644 --- a/docs/document/v2/react-native/room_manage.md +++ b/docs/document/v2/react-native/room_manage.md @@ -24,9 +24,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。 ## 实现方法 @@ -35,9 +34,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/react-native/room_members.md b/docs/document/v2/react-native/room_members.md index 7eedeec75..71daeb3c6 100644 --- a/docs/document/v2/react-native/room_members.md +++ b/docs/document/v2/react-native/room_members.md @@ -21,8 +21,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 + ## 实现方法 diff --git a/docs/document/v2/react-native/thread.md b/docs/document/v2/react-native/thread.md index 857516fe8..772c3cbca 100644 --- a/docs/document/v2/react-native/thread.md +++ b/docs/document/v2/react-native/thread.md @@ -23,9 +23,8 @@ 开始前,请确保满足以下条件: - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/react-native/thread_message.md b/docs/document/v2/react-native/thread_message.md index 455dc7de6..b7754e0ae 100644 --- a/docs/document/v2/react-native/thread_message.md +++ b/docs/document/v2/react-native/thread_message.md @@ -30,7 +30,7 @@ 开始前,请确保满足以下条件: - 已集成 `1.0.5 或以上版本` SDK 的基本功能,完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 - 联系商务开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/react-native/user_relationship.md b/docs/document/v2/react-native/user_relationship.md index f4300bc18..4ab823af2 100644 --- a/docs/document/v2/react-native/user_relationship.md +++ b/docs/document/v2/react-native/user_relationship.md @@ -30,7 +30,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/react-native/userprofile.md b/docs/document/v2/react-native/userprofile.md index 7d955d214..bb87a3a0f 100644 --- a/docs/document/v2/react-native/userprofile.md +++ b/docs/document/v2/react-native/userprofile.md @@ -25,7 +25,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -60,7 +60,7 @@ ChatClient.getInstance() }); ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | :---------- | :----- | :----------------------------------------------------------- | diff --git a/docs/document/v2/server-side/account_system.md b/docs/document/v2/server-side/account_system.md index 575c1979e..30ffb47a7 100644 --- a/docs/document/v2/server-side/account_system.md +++ b/docs/document/v2/server-side/account_system.md @@ -12,9 +12,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | ### 响应参数 @@ -43,7 +43,7 @@ - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。 -- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 认证方式 @@ -57,7 +57,7 @@ ### 开放注册单个用户 -开放注册指用户可以在登录客户端 SDK 后自行通过账号密码注册账号。一般在体验 Demo 和测试开发环境时使用,使用前需先在[环信即时通讯云控制后台](https://console.easemob.com/user/login)打开相应应用的开放注册开关,即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **查看**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将 **用户注册模式** 设置为 **开放注册**。 +开放注册指用户可以在登录客户端 SDK 后自行通过账号密码注册账号。一般在体验 Demo 和测试开发环境时使用,使用前需先在环信即时通讯云控制后台打开相应应用的开放注册开关,即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **应用概览** > **应用详情**,在页面的 **应用设置** 区域中将 **用户注册模式** 设置为 **开放注册**。 #### HTTP 请求 @@ -136,7 +136,7 @@ curl -X POST -i "https://XXXX.com/XXXX-demo/XXXX/users" -d '{"username":"user1", 要使用该注册方式,你需要在环信控制台进行如下配置: -在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **查看**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将**用户注册模式**设置**授权注册**,然后单击**保存**。 +即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **应用概览** > **应用详情**,在页面的 **应用设置** 区域中将 **用户注册模式** 设置**授权注册**,然后单击**保存**。 推荐使用该模式,因为该模式较为安全,可防止已获取了注册 URL 和了解注册流程的某些人恶意向服务器大量注册垃圾用户。 @@ -1051,7 +1051,7 @@ curl --location 'http://XXXX/XXXX/XXXX/users/XXXX/resources' \ 该功能可广泛用于实时互动 app 中,例如发现某用户频繁向多个聊天室发送违规广告,则可以对该用户开启全局聊天室禁言 15 天;发现某用户发表触犯红线的政治言论,则可以全局永久禁言,用户申诉通过后可以解禁。 -使用该功能前,你需先查看你的 IM 套餐版本是否开通了该功能。该功能与 IM 套餐包版本之间的开通关系,详见[产品计费](introduction.html#增值服务费用)。 + ### 设置用户全局禁言 diff --git a/docs/document/v2/server-side/callback.md b/docs/document/v2/server-side/callback.md index 4805fa2ee..a245524e6 100644 --- a/docs/document/v2/server-side/callback.md +++ b/docs/document/v2/server-side/callback.md @@ -36,7 +36,7 @@ - 回调的方向是环信 IM 服务器向应用服务器发起 HTTP/HTTPS POST 请求。 - 若同时设置了消息发送前和发送后两种回调,且消息发送前回调返回拒绝,则消息发送后回调将不会被触发。 -- 对同一个 app,可以针对不同类型的消息(“TEXT”,“IMAGE”,“VIDEO”,“LOCATION”,“VOICE” 和 ”FILE”)做配置;规则支持选择两种以上消息类型同时回调至一个指定服务器地址,接收到消息后,你可以区分消息的类型以便进行分类处理(详见 [消息管理 REST API](message.html))。 +- 对同一个 app,可以针对不同类型的消息(“TEXT”,“IMAGE”,“VIDEO”,“LOCATION”,“VOICE” 和 ”FILE”)做配置;规则支持选择两种以上消息类型同时回调至一个指定服务器地址,接收到消息后,你可以区分消息的类型以便进行分类处理(详见 [消息管理 REST API](message_single.html))。 - 环信 IM 服务器执行发送前回调后,如果你的应用服务器没有返回 valid 状态或者返回其他错误码,该条消息会根据默认设置(console 后台发送前回调中 ”调用失败时默认策略”)处理,不会再重试;后续消息依然正常执行回调。 - 消息发送到你的应用服务器后,应用服务器需返回 HTTP 响应码 200 和 valid 属性,根据 valid 状态决定是否进行下发。 @@ -85,7 +85,7 @@ | `msg_id` | 消息的 ID。 | | `payload` | 消息内容,与通过 REST API 发送过来的一致,查看 [消息格式文档](message_historical.html#历史消息记录的内容)。 | | `securityVersion` | 安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。 | -| `security` | 签名,格式如下: MD5(callId+Secret+timestamp)。Secret 见 [环信即时通讯云控制台](https://console.easemob.com/user/login)回调规则。 | +| `security` | 签名,格式如下: MD5(callId+Secret+timestamp)。Secret 见 环信即时通讯云控制台 回调规则。 | #### 响应 body @@ -148,7 +148,7 @@ 以下是需要了解的发送后回调功能说明,包括在高并发可用性的基础上的使用限制说明,请按照此限制正确使用回调。 -- 消息回调属于增值服务,需要开通相应版本后才能使用,具体见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 开通消息回调服务。 - 消息回调规则设置成功即可正常使用。最多支持 4 个回调规则(包含发送前回调和发送后回调),如果需要再增加回调规则,需要联系商务经理开通。 - 发送后回调范围,所有上行消息有效(包含 REST 发送的消息),包含单聊/群聊;如果 app 开通了反垃圾/敏感词过滤,被识别的消息会在服务器被拦截并禁止发送,将不会回调。 - 发送后回调接收延时,是指消息服务器接收到客户端上行消息、再将消息成功回调至客户指定服务器地址的时间间隔。消息接收延时保障是 99.95% 的消息在 30s 内。 @@ -165,7 +165,7 @@ 具体如下: -1. App Key 可以配置回调规则的数据格式,可以配置多个回调规则(默认最多开通 4 个规则),开通服务后才允许用户配置,前往 [环信即时通讯云控制台](https://console.easemob.com/) 配置: +1. App Key 可以配置回调规则的数据格式,可以配置多个回调规则(默认最多开通 4 个规则),开通服务后才允许用户配置,前往 [环信即时通讯云控制台](enable_and_configure_IM.html#配置消息回调) 配置: | 参数
| 说明 | | :----------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -265,8 +265,8 @@ app 的响应内容不能超过 1,000 个字符,否则环信服务器会认为 | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | #### 请求 header @@ -339,8 +339,8 @@ curl -X GET 'https://a1.easemob.com/easemob-demo/easeim/callbacks/storage/info' | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | #### 请求 header diff --git a/docs/document/v2/server-side/chatroom.md b/docs/document/v2/server-side/chatroom.md index 7db2119f0..17f377676 100644 --- a/docs/document/v2/server-side/chatroom.md +++ b/docs/document/v2/server-side/chatroom.md @@ -13,7 +13,7 @@ 要调用环信即时通讯 RESTful API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见[接口频率限制](limitationapi.html)。 + ## 聊天室成员角色 @@ -29,9 +29,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :------------ | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `chatroom_id` | String | 是 | 聊天室 ID。 | | `username` | String | 是 | 用户 ID。 | | `name` | String | 是 | 聊天室名称,最大长度为 128 个字符。 | diff --git a/docs/document/v2/server-side/easemob_app_token.md b/docs/document/v2/server-side/easemob_app_token.md index d517b3cb1..9ffb2c42c 100644 --- a/docs/document/v2/server-side/easemob_app_token.md +++ b/docs/document/v2/server-side/easemob_app_token.md @@ -1,6 +1,6 @@ --- { - pageUri: "/product/easemob_app_token.html", + pageUri: "/document/v2/privatization/easemob_app_token.html", title: "使用环信 App Token 鉴权" } --- \ No newline at end of file diff --git a/docs/document/v2/server-side/easemob_user_token.md b/docs/document/v2/server-side/easemob_user_token.md index cb2a72c95..c5302333f 100644 --- a/docs/document/v2/server-side/easemob_user_token.md +++ b/docs/document/v2/server-side/easemob_user_token.md @@ -1,6 +1,6 @@ --- { - pageUri: "/product/easemob_user_token.html", + pageUri: "/document/v2/privatization/easemob_user_token.html", title: "使用环信用户 token 鉴权" } --- \ No newline at end of file diff --git a/docs/document/v2/server-side/enable_and_configure_IM.md b/docs/document/v2/server-side/enable_and_configure_IM.md index f94b58f39..3102c72b7 100644 --- a/docs/document/v2/server-side/enable_and_configure_IM.md +++ b/docs/document/v2/server-side/enable_and_configure_IM.md @@ -1,6 +1,6 @@ --- { - pageUri: "/product/enable_and_configure_IM.html", + pageUri: "/document/v2/privatization/uc_configure.html", title: "开通配置环信即时通讯 IM 服务" } --- \ No newline at end of file diff --git a/docs/document/v2/server-side/error.md b/docs/document/v2/server-side/error.md index c6e434831..99032da2d 100644 --- a/docs/document/v2/server-side/error.md +++ b/docs/document/v2/server-side/error.md @@ -53,7 +53,7 @@ | 400 | illegal_argument | “target_type can only be 'users' or 'chatgroups' or 'chatrooms'” | 发送消息时,对象类型(`target_type`)只能传入 `users`、`chatgroups` 或 `chatrooms`。若传入其他值,提示该错误。 | | 400 | illegal_argument | “username is not legal” | 注册用户时传入的 username 不合法,详见 [用户体系集成](account_system.html#注册用户) | | 400 | illegal_argument | “This chatmessage request is not supported” | 查询历史消息时传入的时间格式不正确,正确的格式为 YYYYMMDDHH。例如,要获取 2018 年 02 月 09 日 12 点到 13 点的历史消息,传入的时间为 `2018020912`。 | -| 400 | illegal_argument | “illegal arguments: appkey: easemob-demo#chatdemoui, time: 2018020918, maybe chat message history is expired or unstored” | 查询的历史消息未生成或已过期。消息的保留时间取决于产品套餐,详见[消息存储时长限制](limitation.html#消息存储时长限制)。 | +| 400 | illegal_argument | “illegal arguments: appkey: easemob-demo#chatdemoui, time: 2018020918, maybe chat message history is expired or unstored” | 查询的历史消息未生成或已过期。消息的保留时间取决于初始设置。 | | 400 | invalid_parameter | “some of [groupid] are not valid fields” | 修改的群组信息时,传入的参数不支持,例如修改 `groupid`。修改群信息目前只支持修改“群名称”、“群描述” 和 “群最大人数”。 | | 400 | required_property_not_found | “Entity user requires a property named username” | 修改用户密码请求未提供用户 ID(`username`)。 | | 400 | duplicate_unique_property_exists | “Application null Entity user requires that property named username be unique, value of hxtest1 exists” | 注册用户时,用户 ID 已存在,请更换用户 ID 重新注册。 注:如果是批量注册,若一次调用返回一个 ID 已存在,则此次调用注册的其他不存在的 ID 不会注册,需将已存在的 ID 从数组中移除重新调用注册。 | @@ -69,7 +69,7 @@ | 401 | unauthorized | “registration is not open, please contact the app admin” | 授权注册模式下,调用[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)的 RESTful 接口时,未传入 App Token 或传入了错误的 App Token 时提示该错误,例如 Token 已过期或格式不正确。 | | 401 | unauthorized | “Unable to authenticate due to expired access token” | 调用 RESTful 接口发送请求时使用的 App Token 过期或未传入 App Token。
该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)之外的 RESTful 接口有效。 | | 401 | auth_bad_access_token | “Unable to authenticate due to corrupt access token” | 调用 RESTful 接口发送请求时使用的 App Token 格式错误。
该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)之外的 RESTful 接口有效。 | -| 401 | auth_bad_access_token | “Unable to authenticate” | 调用 RESTful 接口发送请求时使用的 App Token 无效。App Token 的格式正确,但不是由接收请求的服务器生成的,导致服务器无法识别该 Token。
该错误码针对除[注册单个用户](./agora_chat_restful_regiration#注册单个用户)和[批量注册用户](./agora_chat_restful_regiration#注册单个用户)两个 RESTful 接口之外的接口有效。 | +| 401 | auth_bad_access_token | “Unable to authenticate” | 调用 RESTful 接口发送请求时使用的 App Token 无效。App Token 的格式正确,但不是由接收请求的服务器生成的,导致服务器无法识别该 Token。
该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)两个 RESTful 接口之外的接口有效。 | | 403 | forbidden_op | “can not join this group, reason:user: hxtest1 already in group: 40659491815425\n” | 添加群组或聊天室成员时,被添加用户已在群组或聊天室内。 | | 403 | forbidden_op | “users [hxtest100] are not members of this group!” | 踢除群组或聊天室成员时,被踢除的用户不在群组或聊天室内。 | | 403 | forbidden_op | “user: username1 doesn't exist in group: 40659491815425” | 转让群组时,被转让的用户不是群组内成员。 | @@ -85,7 +85,7 @@ | 413 | Request Entity Too Large | “Request Entity Too Large” | 请求体过大,如上传文件时文件过大,需要拆成几个更小的请求体重试。 | | 415 | web_application | “Unsupported Media Type” | 请求体的类型不支持,请检查请求头是否添加了 `Content-Type`: `application/json`,请求包体是否符合标准的 JSON 格式,以及请求头中是否有接口不需要的参数。 | | 429 | resource_limited | “You have exceeded the limit of the Free edition. Please upgrade to higher edition.” | 超过免费版套餐包限制。如需开通其他版本套餐包,需联系环信商务。 | -| 429 | reach_limit | “This request has reached api limit” | 超过即时通讯 RESTful API 的[调用频率限制](/product/limitation.html)。如果限制条件无法满足你的实际业务需求,需联系请联系环信商务。 | +| 429 | reach_limit | “This request has reached api limit” | 超过即时通讯 RESTful API 的调用频率限制。 | | 500 | no_full_text_index | “Entity ‘user’ with property named ‘username’ is not full text indexed. You cannot use the ‘contains’ operand on this field” | username 不支持全文索引,不可以对该字段进行 `contains` 操作。 | | 500 | unsupported_service_operation | “Service operation not supported” | 请求 URL 不支持该请求方式。 | | 500 | web_application | “javax.ws.rs.WebApplicationException” | 请求 URL 错误。 | \ No newline at end of file diff --git a/docs/document/v2/server-side/group.md b/docs/document/v2/server-side/group.md index 1192f7902..3ed15bc66 100644 --- a/docs/document/v2/server-side/group.md +++ b/docs/document/v2/server-side/group.md @@ -4,14 +4,14 @@ 环信即时通讯 IM 提供了 RESTful API 管理 App 中的群组。 -单个 App 创建群组数量有限制,而且单个用户可加入群组的数量视版本而定,详见 [使用限制](limitation.html#群组限制)。 +单个 App 创建群组数量有限制,而且单个用户可加入群组的数量视版本而定,详见 [使用限制](/document/v2/privatization/uc_limitation.html#群组限制)。 ## 前提条件 要调用环信即时通讯 RESTful API,请确保满足以下要求: - 已在环信即时通讯 IM 管理后台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM RESTful API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -19,9 +19,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :--------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `group_id` | String | 是 | 群组 ID。 | | `username` | String | 是 | 用户 ID。 | @@ -91,7 +91,7 @@ POST https://{host}/{org_name}/{app_name}/chatgroups | `description` | String | 是 | 群组描述,最大长度为 512 字符。| | `public` | Bool | 是 | 是否是公开群。公开群可以被搜索到,用户可以申请加入公开群;私有群无法被搜索到,因此需要群主或群管理员添加,用户才可以加入。
- `true`:公开群;
- `false`:私有群。 | | `scale` | String | 否 | 群组规模,取决于群成员总数 `maxusers` 参数。
- (默认)`normal`:普通群,即群成员总数不超过 3000。
- `large`:大型群,群成员总数超过 3000。**创建大型群时,该参数必传。**大型群不支持离线推送。如需默认创建大型群,请联系环信商务。| -| `maxusers` | Int | 否 | 群组最大成员数(包括群主),值为数值类型,默认值 200。不同套餐支持的人数上限不同,详见 [产品价格](https://www.easemob.com/pricing/im)。 | +| `maxusers` | Int | 否 | 群组最大成员数(包括群主),值为数值类型,默认值 2000。不同套餐支持的人数上限不同,详见[使用限制](/document/v2/privatization/uc_limitation.html#群组限制)。 | | `allowinvites` | Bool | 是 | 是否允许群成员邀请用户加入群组:
- `true`:群成员可拉人入群;
- (默认)`false`:只有群主或者管理员才可以拉人入群。
注:该参数仅对私有群有效,因为公开群不允许群成员邀请其他用户入群。 | | `membersonly` | Bool | 否 | 用户申请入群是否需要群主或者群管理员审批。
- `true`:需要;
- (默认)`false`:不需要,用户直接进群。 | | `invite_need_confirm` | Bool | 否 | 邀请用户入群时是否需要被邀用户同意。
- (默认)`true`:是;
- `false`:否。 | diff --git a/docs/document/v2/server-side/java_server_sdk.md b/docs/document/v2/server-side/java_server_sdk.md index 63aa05071..7b235f73e 100644 --- a/docs/document/v2/server-side/java_server_sdk.md +++ b/docs/document/v2/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,登录 [环信管理后台](enable_and_configure_IM.html) 到“应用列表” → 点击“管理”即可获取到 App Key、Client ID、ClientSecret。 ## 实现方法 @@ -128,7 +128,7 @@ public class Config { ## 参考 - [Server SDK 的 API 文档](https://easemob.github.io/easemob-im-server-sdk/)。 -- [Server SDK 开源地址](https://github.com/easemob/easemob-im-server-sdk)。 +- [Server SDK 开源地址](https://github.com/easemob/easemob-im-server-sdk/tree/v0.7.5)。 ## 常见问题 diff --git a/docs/document/v2/server-side/limitation.md b/docs/document/v2/server-side/limitation.md index c65aa2812..d60f70cf7 100644 --- a/docs/document/v2/server-side/limitation.md +++ b/docs/document/v2/server-side/limitation.md @@ -1,6 +1,6 @@ --- { - pageUri: "/product/limitation.html", + pageUri: "/document/v2/privatization/uc_limitation.html", title: "限制条件" } --- \ No newline at end of file diff --git a/docs/document/v2/server-side/message_chatroom.md b/docs/document/v2/server-side/message_chatroom.md index 4eed22ad0..0492a75e1 100644 --- a/docs/document/v2/server-side/message_chatroom.md +++ b/docs/document/v2/server-side/message_chatroom.md @@ -18,7 +18,6 @@ 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 ## 公共参数 @@ -26,9 +25,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :----------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | ### 响应参数 @@ -88,7 +87,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatrooms | `body` | JSON | 是 | 消息内容。body 包含的字段见下表说明。 | | `sync_device` | Bool | 否 | 消息发送成功后,是否将消息同步到发送方。
- `true`:是;
- (默认)`false`:否。 | | `routetype` | String | 否 | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。 | -| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 | +| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 | 请求体中的 `body` 字段说明详见下表。 @@ -823,7 +822,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatrooms/users | `type` | String | 是 | 消息类型:
- `txt`:文本消息;
- `img`:图片消息;
- `audio`:语音消息;
- `video`:视频消息;
- `file`:文件消息;
- `loc`:位置消息;
- `cmd`:透传消息;
- `custom`:自定义消息。 | | `body` | JSON | 是 | 消息内容。body 包含的字段见下表说明。 | | `sync_device` | Bool | 否 | 消息发送成功后,是否将消息同步到发送方。
- `true`:是;
- (默认)`false`:否。 | -| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 | +| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 | | `users` | Array | 是 |接收消息的聊天室成员的用户 ID 数组。每次最多可传 20 个用户 ID。| 请求体中的 `body` 字段说明详见下表。 diff --git a/docs/document/v2/server-side/message_download.md b/docs/document/v2/server-side/message_download.md index a265c6706..cadd9e9ca 100644 --- a/docs/document/v2/server-side/message_download.md +++ b/docs/document/v2/server-side/message_download.md @@ -14,7 +14,7 @@ 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -22,9 +22,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :----------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | ### 响应参数 @@ -83,8 +83,8 @@ POST https://{host}/{org_name}/{app_name}/chatfiles | 参数 | 类型 | 是否必需 | 描述 | | :----------------- | :----- | :------- | :--------------- | | `file` | String | 是 | 文件本地路径。 | -| `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 像素。你也可以在 环信即时通讯控制台的 `应用概览>应用详情` 页面的 `应用设置` 区域修改该默认值。 | +| `thumbnail-width` | Int | 否 | 缩略图的宽度,单位为像素。
- 若上传的原图或视频缩略图小于 10 KB,图片原图即为缩略图。
- 若上传的图片超过 10 KB,缩略图的宽度取决于该参数的设置。
- 若不传该参数,缩略图的宽度默认为 170 像素。你也可以在 环信即时通讯控制台的 `应用概览>应用详情` 页面的 `应用设置` 区域修改该默认值。 | ### HTTP 响应 diff --git a/docs/document/v2/server-side/message_group.md b/docs/document/v2/server-side/message_group.md index 9a899112d..d29cd8c75 100644 --- a/docs/document/v2/server-side/message_group.md +++ b/docs/document/v2/server-side/message_group.md @@ -17,7 +17,7 @@ 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -25,9 +25,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :----------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | ### 响应参数 @@ -86,7 +86,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatgroups | `body` | JSON | 是 | 消息内容。body 包含的字段见下表说明。 | | `sync_device` | Bool | 否 | 消息发送成功后,是否将消息同步到发送方。
- `true`:是;
- (默认)`false`:否。 | | `routetype` | String | 否 | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。 | -| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 | +| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 | | `ext.em_ignore_notification` | Bool | 否 | 是否发送静默消息:
- `true`:是;
- (默认)`false`:否。
发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。| 请求体中的 `body` 字段说明详见下表。 @@ -829,7 +829,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatgroups/users | `type` | String | 是 | 消息类型:
- `txt`:文本消息;
- `img`:图片消息;
- `audio`:语音消息;
- `video`:视频消息;
- `file`:文件消息;
- `loc`:位置消息;
- `cmd`:透传消息;
- `custom`:自定义消息。 | | `body` | JSON | 是 | 消息内容。body 包含的字段见下表说明。 | | `sync_device` | Bool | 否 | 消息发送成功后,是否将消息同步到发送方。
- `true`:是;
- (默认)`false`:否。 | -| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 | +| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 | | `ext.em_ignore_notification` | Bool | 否 | 是否发送静默消息:
- `true`:是;
- (默认)`false`:否。
发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。| | `users` | Array | 是 |接收消息的群成员的用户 ID 数组。每次最多可传 20 个用户 ID。| diff --git a/docs/document/v2/server-side/message_historical.md b/docs/document/v2/server-side/message_historical.md index 4926b27d1..99d26ee40 100644 --- a/docs/document/v2/server-side/message_historical.md +++ b/docs/document/v2/server-side/message_historical.md @@ -6,14 +6,14 @@ - 单次请求获取从指定起始时间开始一小时内的发送的历史消息记录。 - 查询历史消息记录时存在一定延时,无法实时获取。 -- 过期的历史消息记录无法获取。对于不同的套餐版本,历史消息记录的默认存储时间不同,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 过期的历史消息记录无法获取。历史消息记录的默认存储时间14天,支持联系商务调整。 ## 前提条件 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -21,9 +21,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。| +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | ### 响应参数 diff --git a/docs/document/v2/server-side/message_import.md b/docs/document/v2/server-side/message_import.md index 421792bea..a5341d84e 100644 --- a/docs/document/v2/server-side/message_import.md +++ b/docs/document/v2/server-side/message_import.md @@ -9,7 +9,7 @@ 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -17,9 +17,10 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :----------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | + ### 响应参数 diff --git a/docs/document/v2/server-side/message_recall.md b/docs/document/v2/server-side/message_recall.md index c15710421..2d32c0c9e 100644 --- a/docs/document/v2/server-side/message_recall.md +++ b/docs/document/v2/server-side/message_recall.md @@ -8,7 +8,7 @@ ## 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ### HTTP 请求 @@ -36,7 +36,7 @@ POST https://{host}/{org_name}/{app_name}/messages/msg_recall | `to` | String | 是 | 要撤回消息的接收方。
- 单聊为接收方用户 ID;
- 群聊为群组 ID;
- 聊天室聊天为聊天室 ID。
若不传入该参数,请求失败。 | | `chat_type` | String | 是 | 要撤回消息的会话类型:
- `chat`:单聊;
- `groupchat`:群聊 ;
- `chatroom`:聊天室 。 | | `from` | String | 否 | 消息撤回方的用户 ID。若不传该参数,默认为 `admin`。 | -| `force` | Bool | 是 | 是否支持撤回超过服务器存储时长的消息。服务器存储时长详见[服务器消息保存时长](/product/limitation.html#消息存储时长限制)。
- `true`:是。这种情况下,你可以撤回在撤回时长内的消息,也可以撤回超过服务器存储时长的消息。对于后者,该接口会撤回接收方在本地保存的消息。若消息发送的时间介于你的撤回时长和服务器存储时长之间,则撤回失败。例如,如果消息的撤回时长为 2 分钟,在服务器上的存储时长为 7 天,你可以撤回 2 分钟以内发送的消息或发送时间超过 7 天的消息;若消息发送了 3 分钟,则撤回失败。
- `false`:否,不支持撤回超过服务器存储时长的消息。如果你采用默认的 2 分钟撤回时长或联系了商务设置了撤回时长,服务器只能撤回指定时长内发送的消息,超过该时长的消息无法撤回。例如,你设置的撤回时长为 3 分钟,若消息发送了 4 分钟,则撤回失败。 | +| `force` | Bool | 是 | 是否支持撤回超过服务器存储时长的消息。
- `true`:是。这种情况下,你可以撤回在撤回时长内的消息,也可以撤回超过服务器存储时长的消息。对于后者,该接口会撤回接收方在本地保存的消息。若消息发送的时间介于你的撤回时长和服务器存储时长之间,则撤回失败。例如,如果消息的撤回时长为 2 分钟,在服务器上的存储时长为 7 天,你可以撤回 2 分钟以内发送的消息或发送时间超过 7 天的消息;若消息发送了 3 分钟,则撤回失败。
- `false`:否,不支持撤回超过服务器存储时长的消息。如果你采用默认的 2 分钟撤回时长或联系了商务设置了撤回时长,服务器只能撤回指定时长内发送的消息,超过该时长的消息无法撤回。例如,你设置的撤回时长为 3 分钟,若消息发送了 4 分钟,则撤回失败。 | ### HTTP 响应 diff --git a/docs/document/v2/server-side/message_single.md b/docs/document/v2/server-side/message_single.md index 18bbd74db..e4ed0dffc 100644 --- a/docs/document/v2/server-side/message_single.md +++ b/docs/document/v2/server-side/message_single.md @@ -28,7 +28,7 @@

1.发送消息时,可选的 `from` 字段用于指定发送方。

-

2. 消息支持扩展属性 `ext`,可添加自定义信息。同时,推送通知也支持自定义扩展字段,详见 APNs 自定义显示Android 推送字段说明

+

2. 消息支持扩展属性 `ext`,可添加自定义信息。同时,推送通知也支持自定义扩展字段,详见 APNs 自定义显示Android 推送字段说明

@@ -36,7 +36,7 @@

图片/语音/视频/文件消息

-

1. 调用文件上传方法上传图片、语音、视频或其他类型文件,并从响应 body 中获取文件 UUID。

+

1. 调用文件上传方法上传图片、语音、视频或其他类型文件,并从响应 body 中获取文件 UUID。

2. 调用发送消息方法,在请求 body 中传入该 UUID。

@@ -57,7 +57,7 @@ 要调用环信即时通讯 REST API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -65,9 +65,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :----------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ### 响应参数 @@ -123,7 +123,7 @@ POST https://{host}/{org_name}/{app_name}/messages/users | `body` | JSON | 是 | 消息内容。body 包含的字段见下表说明。 | | `sync_device` | Bool | 否 | 消息发送成功后,是否将消息同步到发送方。
- `true`:是;
- (默认)`false`:否。 | | `routetype` | String | 否 | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。 | -| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 | +| `ext` | JSON | 否 | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 | | `ext.em_ignore_notification` | Bool | 否 | 是否发送静默消息:
- `true`:是;
- (默认)`false`:否。
发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。| 请求体中的 `body` 字段说明详见下表。 diff --git a/docs/document/v2/server-side/overview.md b/docs/document/v2/server-side/overview.md index fe83cd8c7..f67713ad5 100644 --- a/docs/document/v2/server-side/overview.md +++ b/docs/document/v2/server-side/overview.md @@ -41,7 +41,8 @@ ## 请求域名 -环信不同数据中心的 REST API 请求域名 {host}: +请参照私有化部署文档 **5.2应用信息** 章节获取REST API请求信息。 + ### 通信协议 环信即时通讯 REST API 支持 HTTP 和 HTTPS 协议。 diff --git a/docs/document/v2/server-side/php_server_sdk.md b/docs/document/v2/server-side/php_server_sdk.md index 3e64193d6..911179e49 100644 --- a/docs/document/v2/server-side/php_server_sdk.md +++ b/docs/document/v2/server-side/php_server_sdk.md @@ -33,9 +33,7 @@ composer require maniac/easemob-php 使用 PHP SDK 之前,需准备环信 App Key、Client ID 和 Client Secret。 -如果你有环信管理后台账号并创建过应用,请先登录环信管理后台,点击 [这里](https://console.easemob.com/user/login),然后在 “应用列表” 中点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。 - -如果你没有环信管理后台账号,请先注册账号,点击 [这里](https://console.easemob.com/user/register),注册成功后请登录,然后点击 “添加应用”,添加成功后点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。 +- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信管理后台](enable_and_configure_IM.html) 到“应用列表” → 点击“管理”即可获取到 App Key、Client ID、ClientSecret。 ## 使用 @@ -107,7 +105,7 @@ $user->create($data); ## 参考 - PHP SDK 的 API 文档在 [这里](https://easemob.github.io/im-php-server-sdk/annotated.html) -- PHP SDK 开源地址在 [这里](https://github.com/easemob/im-php-server-sdk) +- PHP SDK 开源地址在 [这里](https://github.com/easemob/im-php-server-sdk/tree/1.0.0) ## 常见问题 diff --git a/docs/document/v2/server-side/presence.md b/docs/document/v2/server-side/presence.md index 687f85380..9b052fce4 100644 --- a/docs/document/v2/server-side/presence.md +++ b/docs/document/v2/server-side/presence.md @@ -4,9 +4,6 @@ 在线状态(Presence)表示用户的当前状态信息。除了环信 IM 内置的在线和离线状态,你还可以添加自定义在线状态,例如忙碌、马上回来、离开、接听电话、外出就餐等。本文展示如何调用环信即时通讯 RESTful API 实现用户在线状态(Presence)订阅,包括设置用户在线状态信息、批量订阅和获取在线状态、取消订阅以及查询订阅列表。 -:::notice -使用该特性前,你需要联系商务开通。 -::: ## 前提条件 @@ -14,7 +11,7 @@ - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。 -- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -24,9 +21,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :------------ | :----- | :------ | :---------------- | -| `host`| String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。| -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。| +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 |用户在即时通讯服务器上的唯一 ID。 | ## 认证方式 diff --git a/docs/document/v2/server-side/push.md b/docs/document/v2/server-side/push.md index 1c95425c6..b85295230 100644 --- a/docs/document/v2/server-side/push.md +++ b/docs/document/v2/server-side/push.md @@ -2,10 +2,10 @@ -本文展示如何调用环信即时通讯 RESTful API 实现离线推送,包括设置离线推送通知显示的昵称、推送通知方式及免打扰模式。调用以下方法前,请先参考 [接口频率限制](limitationapi.html) 了解即时通讯 RESTful API 的调用频率限制。 +本文展示如何调用环信即时通讯 RESTful API 实现离线推送,包括设置离线推送通知显示的昵称、推送通知方式及免打扰模式。 :::tip -若要使用离线推送的高级功能,即设置推送通知模式、免打扰模式和自定义推送模板,你需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)中点击你的应用后选择 **即时通讯** > **功能配置** > **功能配置总览** 开通离线推送高级功能。 +若要使用离线推送的高级功能,即设置推送通知模式、免打扰模式和自定义推送模板,你需要在环信即时通讯云控制后台中点击你的应用后选择 **服务管理** > **服务概览** 开通离线推送高级功能。 ::: ## 公共参数 @@ -16,9 +16,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 环信用户 ID。 | ### 响应参数 @@ -258,7 +258,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username} | `entities.created` | Number | 用户注册的 Unix 时间戳,单位为毫秒。 | | `entities.modified` | Number | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。 | | `entities.username` | String | 用户 ID。用户登录的唯一账号。 | -| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。
| +| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号解禁)解除封禁。
| | `entities.nickname` | String | 推送通知中显示的昵称。 | 其他参数及说明详见 [公共参数](#公共参数)。 @@ -340,7 +340,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username} | `entities.created` | Long | 用户创建的 Unix 时间戳,单位为毫秒。 | | `entities.modified` | Long | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。 | | `entities.username` | String | 用户 ID。用户登录的唯一账号。 | -| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。
| +| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号封禁)解除封禁。
| | `entities.notification_no_disturbing` | Boolean | 是否设置为免打扰模式:
  • `true`:是;
  • `false`:否。
| | `entities.notification_no_disturbing_start` | Int | 免打扰时间段的开始时间。 | | `entities.notification_no_disturbing_end` | Int | 免打扰时间段的结束时间。 | @@ -446,7 +446,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username} | `entities.created` | Long | 用户创建的 Unix 时间戳,单位为毫秒。 | | `entities.modified` | Long | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。 | | `entities.username` | String | 用户 ID。用户登录的唯一账号。 | -| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。
| +| `entities.activated` | Boolean | 用户是否为活跃状态:
  • `true`:用户为活跃状态。
  • `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号封禁)解除封禁。
| | `entities.notification_no_disturbing` | Boolean | 是否设置为免打扰模式:
  • `true`:是;
  • `false`:否。
| | `entities.notification_no_disturbing_start` | Int | 免打扰时间段的开始时间。 | | `entities.notification_no_disturbing_end` | Int | 免打扰时间段的结束时间。 | diff --git a/docs/document/v2/server-side/reaction.md b/docs/document/v2/server-side/reaction.md index 47bb3b360..a03c7ac32 100644 --- a/docs/document/v2/server-side/reaction.md +++ b/docs/document/v2/server-side/reaction.md @@ -2,7 +2,7 @@ -消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。对于单个消息,一个消息表情即为一个 Reaction,若不同用户重复添加同一消息表情,Reaction 数量计为 1。每条消息默认可添加 20 个 Reaction,若需提升该上限,需联系环信商务。 +消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。对于单个消息,一个消息表情即为一个 Reaction,若不同用户重复添加同一消息表情,Reaction 数量计为 1。每条消息默认可添加 20 个 Reaction。 本页介绍如何使用即时通讯 IM RESTful API 实现 Reaction 功能。 @@ -12,7 +12,7 @@ - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。 -- 了解环信 IM RESTful API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -20,9 +20,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ## 认证方式 diff --git a/docs/document/v2/server-side/user_relationship.md b/docs/document/v2/server-side/user_relationship.md index 140504478..7effe8ec9 100644 --- a/docs/document/v2/server-side/user_relationship.md +++ b/docs/document/v2/server-side/user_relationship.md @@ -9,7 +9,7 @@ 要调用环信即时通讯 RESTful API,请确保满足以下要求: - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 认证方式 @@ -25,9 +25,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ### 响应参数 @@ -55,7 +55,7 @@ 添加好友,好友必须是和当前用户在一个 App Key 下的用户。 -对于免费版即时通讯服务,单个 App Key 下的每个用户的好友数量上限为 1000,不同服务版本的 App Key 的该数量上限不同,具体可参考[版本功能介绍](https://www.easemob.com/pricing/im)。 +对于免费版即时通讯服务,单个 App Key 下的每个用户的好友数量上限为 1000,私有部署用户好友数无上限。 ### HTTP 请求 diff --git a/docs/document/v2/server-side/user_status_callback.md b/docs/document/v2/server-side/user_status_callback.md index 2f49b2df8..25f719a2f 100644 --- a/docs/document/v2/server-side/user_status_callback.md +++ b/docs/document/v2/server-side/user_status_callback.md @@ -17,13 +17,12 @@ ## 前提条件 -- 该服务为增值服务,需要开通相应版本后才能使用,具体见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im); - 服务开通后,若用户状态变更(在线、离线),环信即时通讯 IM 服务器会实时将状态同步到开发者设置的应用服务器地址,开发者接收到状态后自行进行业务处理。 - 某些情况下,例如进入隧道等特殊网络情况,依赖心跳超时,用户进入离线状态最长会有 5 分钟延时。 ## 实现方法 -直接在发送后回调添加规则页配置,具体见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。 +直接在发送后回调添加规则页配置,具体见 [环信即时通讯云控制台](uc_configure.html#配置消息回调)。 ## 应答要求 diff --git a/docs/document/v2/server-side/userprofile.md b/docs/document/v2/server-side/userprofile.md index 4cfbe3437..92478b743 100644 --- a/docs/document/v2/server-side/userprofile.md +++ b/docs/document/v2/server-side/userprofile.md @@ -27,7 +27,7 @@ 要调用环信即时通讯 RESTful API,请确保满足以下条件: - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。 -- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。 + ## 公共参数 @@ -35,9 +35,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ### 响应参数 diff --git a/docs/document/v2/unity/group_attributes.md b/docs/document/v2/unity/group_attributes.md index de194840a..af6412d3d 100644 --- a/docs/document/v2/unity/group_attributes.md +++ b/docs/document/v2/unity/group_attributes.md @@ -18,8 +18,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/unity/group_manage.md b/docs/document/v2/unity/group_manage.md index e1fd8e8de..79cff515d 100644 --- a/docs/document/v2/unity/group_manage.md +++ b/docs/document/v2/unity/group_manage.md @@ -23,8 +23,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/unity/group_members.md b/docs/document/v2/unity/group_members.md index 544edad31..4350830a0 100644 --- a/docs/document/v2/unity/group_members.md +++ b/docs/document/v2/unity/group_members.md @@ -21,9 +21,9 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); - 了解群成员角色,详见 [群组概述](group_overview.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 + ## 实现方法 diff --git a/docs/document/v2/unity/message_manage.md b/docs/document/v2/unity/message_manage.md index b016feda4..389a66a7d 100644 --- a/docs/document/v2/unity/message_manage.md +++ b/docs/document/v2/unity/message_manage.md @@ -31,7 +31,7 @@ SQLCipher 用于加密存储本地消息的数据库。即时通讯 IM SDK 使 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/unity/message_modify.md b/docs/document/v2/unity/message_modify.md index a1a7433ec..7a7fcbe77 100644 --- a/docs/document/v2/unity/message_modify.md +++ b/docs/document/v2/unity/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。 ::: -你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。 示例代码如下: diff --git a/docs/document/v2/unity/message_receipt.md b/docs/document/v2/unity/message_receipt.md index ca640e32f..e32adcb5e 100644 --- a/docs/document/v2/unity/message_receipt.md +++ b/docs/document/v2/unity/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -40,8 +40,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 @@ -223,7 +223,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 群主或群管理员发送消息时若需已读回执,需设置 `Message` 的 `IsNeedGroupAck` 为 `true`。 diff --git a/docs/document/v2/unity/message_retrieve.md b/docs/document/v2/unity/message_retrieve.md index 8b70ded09..85b0fb35c 100644 --- a/docs/document/v2/unity/message_retrieve.md +++ b/docs/document/v2/unity/message_retrieve.md @@ -4,9 +4,6 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取和删除会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 -::: ## 实现原理 @@ -24,7 +21,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -115,7 +112,7 @@ SDKClient.Instance.ChatManager.PinConversation(convId, isPinned, new CallBack( ### 分页获取指定会话的历史消息 -你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 +你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。 @@ -137,7 +134,7 @@ SDKClient.Instance.ChatManager.FetchHistoryMessagesFromServer(conversationId, ty 你可以调用 `RemoveMessagesFromServer` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。已删除的消息自动从设备本地移除。 :::tip -若使用该功能,需将 SDK 升级至 V1.1.0 或以上版本并联系商务。 +若使用该功能,需将 SDK 升级至 V1.1.0 或以上版本。 ::: ```csharp diff --git a/docs/document/v2/unity/message_send_receive.md b/docs/document/v2/unity/message_send_receive.md index 2e888bc58..66c0b0d95 100644 --- a/docs/document/v2/unity/message_send_receive.md +++ b/docs/document/v2/unity/message_send_receive.md @@ -31,7 +31,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -98,7 +98,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```csharp SDKClient.Instance.ChatManager.RecallMessage("Message ID", new CallBack( diff --git a/docs/document/v2/unity/multi_device.md b/docs/document/v2/unity/multi_device.md index b39ab93b9..2f2ba508b 100644 --- a/docs/document/v2/unity/multi_device.md +++ b/docs/document/v2/unity/multi_device.md @@ -11,7 +11,7 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +24,7 @@ - +
@@ -38,7 +38,7 @@ - +
单端/多端登录
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
@@ -177,7 +177,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/unity/overview.md b/docs/document/v2/unity/overview.md index c257f68d3..7989da077 100644 --- a/docs/document/v2/unity/overview.md +++ b/docs/document/v2/unity/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -49,15 +49,15 @@ SDKClient.Instance.InitWithOptions(options); 目前注册的方式有以下几种: - 通过控制台注册。 - 通过 REST API 接口注册。 -- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。 +- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。 ### 控制台注册 -控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。 +控制台的注册请到 **运营服务->用户管理** 页面下进行注册。 ### REST API 注册 -请参考 [注册用户](/document/server-side/account_system.html#注册用户)。 +请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ### SDK 注册 @@ -83,7 +83,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录: - 用户 ID + 密码 - 用户 ID + token -登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `OnConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -113,7 +113,7 @@ SDKClient.Instance.Login(username, password, ); ``` -2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/unity/presence.md b/docs/document/v2/unity/presence.md index d1c776212..f40d19bce 100644 --- a/docs/document/v2/unity/presence.md +++ b/docs/document/v2/unity/presence.md @@ -6,9 +6,6 @@ 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。 -:::notice -私有化版本不支持在线状态订阅。 -::: ## 技术原理 @@ -41,8 +38,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/unity/quickstart.md b/docs/document/v2/unity/quickstart.md index ff2b1e652..3d51d6a4e 100644 --- a/docs/document/v2/unity/quickstart.md +++ b/docs/document/v2/unity/quickstart.md @@ -33,14 +33,14 @@ | 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,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 - 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。 ## 项目设置 实现发送和接收单聊文本消息之前,参考以下步骤设置你的项目。 -### 1. 下载并设置 Unity Demo 项目 + +1. [下载 Unity SDK](https://downloadsdk.easemob.com/downloads/SDK/Unity/agora_chat_unity_sdk1.2.0.unitypackage)。 2. 在 Unity Editor 中,选择 **Assets > Import Package > Custom Package...**,然后选择刚下载的 unitypackage 导入。 3. 在弹出的 **Import Unity Package** 页面,点击右下角的 **Import**。 @@ -119,7 +119,7 @@ SDKClient.Instance.CreateAccount(username: Username.text, Password.text, callbac ``` :::notice -该注册模式在客户端实现,简单方便,主要用于测试,但不推荐在正式环境中使用。正式环境中应使用服务器端调用 Restful API 进行注册,详见 [注册单个用户](/document/server-side/account_system.html#注册单个用户)。 +该注册模式在客户端实现,简单方便,主要用于测试,但不推荐在正式环境中使用。正式环境中应使用服务器端调用 Restful API 进行注册,详见 [注册单个用户](/document/v2/server-side/account_system.html#注册单个用户)。 ::: ### 5. 登录账号 diff --git a/docs/document/v2/unity/reaction.md b/docs/document/v2/unity/reaction.md index 0040d9157..fc1af1e6d 100644 --- a/docs/document/v2/unity/reaction.md +++ b/docs/document/v2/unity/reaction.md @@ -7,7 +7,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -31,8 +30,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `1.0.5 或 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/unity/releasenote.md b/docs/document/v2/unity/releasenote.md index 5f9040a0b..fd2c53dba 100644 --- a/docs/document/v2/unity/releasenote.md +++ b/docs/document/v2/unity/releasenote.md @@ -212,11 +212,9 @@ - 消息表情回复; - 管理子区等。 -关于详细功能概述,请参见[产品概述](https://docs-im-beta.easemob.com/product/introduction.html)。 - 具体集成请参考以下文档: -- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html) +- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html) - [环信即时通讯 IM Unity 快速入门](quickstart.html) - [消息管理 Unity](message_overview.html) - [群组 Unity](group_overview.html) diff --git a/docs/document/v2/unity/room_attributes.md b/docs/document/v2/unity/room_attributes.md index 5f883c454..3dbbce75b 100644 --- a/docs/document/v2/unity/room_attributes.md +++ b/docs/document/v2/unity/room_attributes.md @@ -20,8 +20,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html); -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/unity/room_manage.md b/docs/document/v2/unity/room_manage.md index de8dd6e1b..63bc44afa 100644 --- a/docs/document/v2/unity/room_manage.md +++ b/docs/document/v2/unity/room_manage.md @@ -25,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。 ## 实现方法 @@ -36,9 +35,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/unity/room_members.md b/docs/document/v2/unity/room_members.md index 221968878..3fb02759f 100644 --- a/docs/document/v2/unity/room_members.md +++ b/docs/document/v2/unity/room_members.md @@ -21,8 +21,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html); -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/unity/thread.md b/docs/document/v2/unity/thread.md index 8f1682ef9..178c45f40 100644 --- a/docs/document/v2/unity/thread.md +++ b/docs/document/v2/unity/thread.md @@ -6,9 +6,6 @@ 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -29,9 +26,8 @@ 开始前,请确保满足以下条件: - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/unity/thread_message.md b/docs/document/v2/unity/thread_message.md index fd0fc4341..1c9777ba8 100644 --- a/docs/document/v2/unity/thread_message.md +++ b/docs/document/v2/unity/thread_message.md @@ -31,8 +31,8 @@ - 已集成环信 IM `(1.0.5 或以上版本)` 的基本功能,账户登录成功。 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/unity/user_relationship.md b/docs/document/v2/unity/user_relationship.md index e3e8cc7f5..91cd1bc06 100644 --- a/docs/document/v2/unity/user_relationship.md +++ b/docs/document/v2/unity/user_relationship.md @@ -29,7 +29,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/unity/userprofile.md b/docs/document/v2/unity/userprofile.md index 747acc08f..a9f9247f7 100644 --- a/docs/document/v2/unity/userprofile.md +++ b/docs/document/v2/unity/userprofile.md @@ -24,7 +24,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -56,7 +56,7 @@ SDKClient.Instance.UserInfoManager.UpdateOwnInfo(userInfo, new CallBack( )); ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | :---------- | :----- | :------------------------------------------------------------------------------------------------ | diff --git a/docs/document/v2/web/demo_react.md b/docs/document/v2/web/demo_react.md index d0c6aff9a..d8d873ef4 100644 --- a/docs/document/v2/web/demo_react.md +++ b/docs/document/v2/web/demo_react.md @@ -4,23 +4,23 @@ 环信即时通讯 Web 端提供示例应用可供体验。你可以按以下步骤体验: -1. [登录 Demo](https://webim-h5.easemob.com/#/login)。 +1. [登录 Demo](https://zq-im-management-hsb.easemob.com/)。 -![img](@static/images/demo/web_react_login.png) + -2. 输入你的手机号,获取验证码,然后输入。 +2. 输入你的登录账号和密码,然后输入。 3. 点击 **登录** 登录 Demo。 ## 代码下载 -下载源代码:[github 源码地址](https://github.com/easemob/webim) +下载源代码:[源码地址](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip) 欢迎大家提交 PR 改进和修复 Web IM 中的问题。 ## 运行 Web IM 项目 -从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 Web SDK 压缩包,然后解压。解压后在 `demo` 文件夹即为 Web IM 的项目目录。 +下载 Web SDK 压缩包,然后解压。解压后在 `demo` 文件夹即为 Web IM 的项目目录。 1. 安装 Demo 所需的依赖:在终端中运行 `cd demo` 和 `npm install` 命令。 diff --git a/docs/document/v2/web/demo_vue.md b/docs/document/v2/web/demo_vue.md index a63796147..f627af04d 100644 --- a/docs/document/v2/web/demo_vue.md +++ b/docs/document/v2/web/demo_vue.md @@ -2,7 +2,7 @@ -环信即时通讯 Web 端提供示例应用可供体验。你可以按以下步骤体验: + ## 代码下载 -- Vue 2 下载源代码:[github 源码地址](https://github.com/easemob/webim-vue-demo/tree/dev-4.0) -- Vue 3 下载源代码:[github 源码地址](https://github.com/easemob/webim-vue-demo/tree/demo-vue3) +- Vue 2 下载源代码:[github 源码地址](https://downloadsdk.easemob.com/mp/downloads/sdk/private-vue2-20230918.zip) +- Vue 3 下载源代码:[github 源码地址]() 欢迎大家提交 PR 改进和修复 Web IM 中的问题。 ## 运行 Web IM 项目 -从 [github 下载](https://github.com/easemob/webim-vue-demo/tree/dev-4.0) 下载项目代码压缩包,然后解压。解压后,`webim-vue-demo` 文件夹即为 Web IM 的项目目录。 +下载项目代码压缩包,然后解压。解压后,`webim-vue-demo` 文件夹即为 Web IM 的项目目录。 1. 安装 Demo 所需的依赖:在终端中运行 `cd demo` 和 `npm install` 命令。 diff --git a/docs/document/v2/web/group_attributes.md b/docs/document/v2/web/group_attributes.md index 0bde21297..bcf561123 100644 --- a/docs/document/v2/web/group_attributes.md +++ b/docs/document/v2/web/group_attributes.md @@ -15,7 +15,7 @@ ## 前提条件 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的接口调用频率限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/web/group_manage.md b/docs/document/v2/web/group_manage.md index a402d071d..5fa105009 100644 --- a/docs/document/v2/web/group_manage.md +++ b/docs/document/v2/web/group_manage.md @@ -22,8 +22,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的接口调用频率限制,详见 [使用限制](/product/limitation.html)。 -- 了解群组和群成员数量限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/web/group_members.md b/docs/document/v2/web/group_members.md index e9c6a123e..46a4dd90b 100644 --- a/docs/document/v2/web/group_members.md +++ b/docs/document/v2/web/group_members.md @@ -20,7 +20,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 - 了解群成员角色,详见 [群组概述](group_overview.html)。 ## 实现方法 diff --git a/docs/document/v2/web/message_receipt.md b/docs/document/v2/web/message_receipt.md index 3f0694747..03fa7ba54 100644 --- a/docs/document/v2/web/message_receipt.md +++ b/docs/document/v2/web/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -35,9 +35,8 @@ 开始前,请确保满足以下要求: -- 已经集成和初始化环信 IM SDK,并实现了注册账号和登录功能。详情请参见 [快速开始](quickstart.html)。 -- 了解 [使用限制](/product/limitation.html) 中的 API 调用频率限制。 -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -147,7 +146,7 @@ conn.addEventHandler("customEvent", { 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 群主或群管理员发送消息时若需已读回执,需设置 `allowGroupAck` 为 `true`: diff --git a/docs/document/v2/web/message_retrieve.md b/docs/document/v2/web/message_retrieve.md index e1fc11af0..b3ece5808 100644 --- a/docs/document/v2/web/message_retrieve.md +++ b/docs/document/v2/web/message_retrieve.md @@ -4,10 +4,6 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍如何实现用户从消息服务器获取会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 - -::: ## 技术原理 @@ -134,7 +130,7 @@ WebIM.conn 你可以调用 `removeHistoryMessages` 方法按照时间或消息 ID 单向删除服务端的历史消息。每次最多可删除 50 条消息。消息删除后,该账号无法从服务端拉取到该消息。其他用户不受该操作影响。多端多设备登录时,删除成功后会触发 `onMultiDeviceEvent#deleteRoaming` 回调。 :::tip -若使用该功能,需将 SDK 升级至 V4.1.2 或以上版本并联系商务开通。 +若使用该功能,需将 SDK 升级至 V4.1.2 或以上版本。 ::: 示例代码如下: diff --git a/docs/document/v2/web/message_send_receive.md b/docs/document/v2/web/message_send_receive.md index 6b38471a7..77e617d9c 100644 --- a/docs/document/v2/web/message_send_receive.md +++ b/docs/document/v2/web/message_send_receive.md @@ -42,7 +42,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -162,7 +162,7 @@ conn.addEventHandler("eventName", { ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```javascript let option = { @@ -267,7 +267,7 @@ function sendPrivateAudio() { #### 发送图片消息 -对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 [环信即时通讯控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。 +对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 环信即时通讯控制台的 **应用概览>应用详情** 页面的 `应用设置` 区域修改该默认值。 请参考以下代码示例创建和发送图片消息: diff --git a/docs/document/v2/web/multi_device.md b/docs/document/v2/web/multi_device.md index 6c1399035..6779a73c6 100644 --- a/docs/document/v2/web/multi_device.md +++ b/docs/document/v2/web/multi_device.md @@ -9,11 +9,11 @@ - 子区相关操作; - 会话相关操作。 -环信服务器提供 RESTful 接口[查询每个账号已登录设备列表](account_system.html#获取指定账号的在线登录设备列表)以及[将账号从已登录设备强制下线](account_system.html#强制下线)。 +环信服务器提供 RESTful 接口[查询每个账号已登录设备列表](/document/v2/server-side/account_system.html#获取指定账号的在线登录设备列表)以及[将账号从已登录设备强制下线](/document/v2/server-side/account_system.html#强制下线)。 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 ![img](@static/images/common/multidevice_device_count.png) @@ -26,7 +26,7 @@ - +
@@ -40,7 +40,7 @@ - +
单端/多端登录
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
diff --git a/docs/document/v2/web/overview.md b/docs/document/v2/web/overview.md index cd422d54c..d35986d41 100644 --- a/docs/document/v2/web/overview.md +++ b/docs/document/v2/web/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -94,15 +94,15 @@ const conn = new EC.connection({ ### 控制台注册 -登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择**即时通讯** > **运营服务** > **用户管理**,创建 IM 用户。 +登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **运营服务** > **用户管理**,创建 IM 用户。 ### REST API 注册 -请参考 [注册用户](/document/server-side/account_system.html#注册用户)。 +请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ### SDK 注册 -若支持 SDK 注册,需登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 +若支持 SDK 注册,需登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **应用概览** > **应用详情**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。 ```javascript conn @@ -126,7 +126,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录: - 用户 ID + 密码 - 用户 ID + token -登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -146,7 +146,7 @@ conn }); ``` -2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/product/easemob_user_token.html)。 +2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/privatization/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/web/presence.md b/docs/document/v2/web/presence.md index 195aa7a7f..59f1c386c 100644 --- a/docs/document/v2/web/presence.md +++ b/docs/document/v2/web/presence.md @@ -35,8 +35,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `4.0.4 及以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/web/privatecloud.md b/docs/document/v2/web/privatecloud.md index e8fbdf50f..f019cbf12 100644 --- a/docs/document/v2/web/privatecloud.md +++ b/docs/document/v2/web/privatecloud.md @@ -2,7 +2,7 @@ ## Web Vue 2 Demo -对于 Web Vue Demo,进行私有化配置需在 [Vue 2 Demo 源代码](https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-vue2-20230104.zip)中进行修改。 +对于 Web Vue Demo,进行私有化配置需在 [Vue 2 Demo 源代码](https://downloadsdk.easemob.com/mp/downloads/sdk/private-vue2-20230918.zip)中进行修改。 ### 修改环境配置 @@ -43,7 +43,7 @@ const DEFAULT_APIURL = "https://xxx.xxxxx.com"; // 私有化的 RESTful 服务 ## Web React Demo -对于 Web React Demo,进行私有化配置需在 [React Demo 源代码](https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-demo-20230104.zip)中进行修改。 +对于 Web React Demo,进行私有化配置需在 [React Demo 源代码](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip)中进行修改。 修改配置如下: diff --git a/docs/document/v2/web/push.md b/docs/document/v2/web/push.md index 87e41fc3d..a0f5c2a0a 100644 --- a/docs/document/v2/web/push.md +++ b/docs/document/v2/web/push.md @@ -15,7 +15,6 @@ 环信 IM Web SDK 本身不支持离线推送,只支持对移动端离线推送进行如下配置: - 设置推送通知,包含设置推送通知方式和免打扰模式。设置推送通知为推送的高级功能,使用前需要在环信控制台开启该功能。 -- 设置推送翻译。 ## 技术原理 @@ -33,7 +32,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 - 你已在环信即时通讯云管理后台中激活推送高级功能。推送高级功能包括设置推送通知模式和免打扰模式。 ![image](@static/images/web/push_web_enable_push.png) @@ -258,7 +257,7 @@ WebIM.conn.clearRemindTypeForConversation(params) ### 设置推送翻译 -如果用户启用[自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 +如果用户启用自动翻译功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。 diff --git a/docs/document/v2/web/quickstart.md b/docs/document/v2/web/quickstart.md index 97337a0f2..e46ce13bc 100644 --- a/docs/document/v2/web/quickstart.md +++ b/docs/document/v2/web/quickstart.md @@ -13,7 +13,7 @@ ## 前提条件 - 有效的环信即时通讯 IM 开发者账号; -- [创建环信即时通讯 IM 项目并获取 App Key](/product/enable_and_configure_IM.html); +- [创建环信即时通讯 IM 项目并获取 App Key](/document/v2/privatization/uc_configure.html); - [npm](https://www.npmjs.com/get-npm); - SDK 支持 IE 9+、Firefox 10+、Chrome 54+ 和 Safari 6+。 @@ -324,9 +324,9 @@ $ npm run start:dev import WebIM from 'easemob-websdk' ``` -#### 方法二:从官网获取并导入 SDK +#### 方法二:下载Demo并导入 SDK -1. 下载 [Easemob Chat SDK for Web](https://www.easemob.com/download/im)。将 `demo/src/config` 中的 Easemob-chat 文件保存到你的项目下。 +1. 下载 [Easemob Chat SDK for Web](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip)。将 `demo/src/config` 中的 Easemob-chat 文件保存到你的项目下。 2. 在 `index.html` 文件中,对 `index.js` 文件进行引用。 diff --git a/docs/document/v2/web/reaction.md b/docs/document/v2/web/reaction.md index b37978ccb..c2136e4b1 100644 --- a/docs/document/v2/web/reaction.md +++ b/docs/document/v2/web/reaction.md @@ -6,7 +6,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -32,8 +31,8 @@ 开始前,请确保满足以下条件: 1. 完成 `4.0.5 及以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/web/releasenote.md b/docs/document/v2/web/releasenote.md index e677d3db4..415c6bff8 100644 --- a/docs/document/v2/web/releasenote.md +++ b/docs/document/v2/web/releasenote.md @@ -168,7 +168,6 @@ ### 新增特性: - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应; -- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核; - [IM SDK] 新增推送设置 API,支持不同的推送配置; - [IM SDK] 增加数据上报功能; @@ -184,14 +183,10 @@ ## 版本 V4.0.4 2022-4-19 -:::tip -仅 V4.0.4 及以下版本支持私有化部署。 -::: ### 新增特性: - [IM SDK] 增加 [用户在线状态(Presence)](presence.html) 订阅功能。 -- [IM SDK] [翻译功能](message_translation.html):增加自动翻译接口。实现用户按需翻译和发消息自动翻译。 ### 优化: diff --git a/docs/document/v2/web/room_attributes.md b/docs/document/v2/web/room_attributes.md index 043e38b15..3643d78a6 100644 --- a/docs/document/v2/web/room_attributes.md +++ b/docs/document/v2/web/room_attributes.md @@ -20,8 +20,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/web/room_manage.md b/docs/document/v2/web/room_manage.md index d987e4db2..4df2ad74f 100644 --- a/docs/document/v2/web/room_manage.md +++ b/docs/document/v2/web/room_manage.md @@ -24,9 +24,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 API 使用限制,详见 [使用限制](/product/limitation); -- 了解环信即时通讯 IM 聊天室不同版本的数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im); -- 仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以创建聊天室; +- 了解环信即时通讯 IM 的 API 使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); +- 仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以创建聊天室; - 聊天室创建者和管理员的数量之和不能超过 100 ,即管理员最多可添加 99 个。 ## 实现方法 @@ -35,9 +34,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/web/room_members.md b/docs/document/v2/web/room_members.md index 052410c33..11ae5cec1 100644 --- a/docs/document/v2/web/room_members.md +++ b/docs/document/v2/web/room_members.md @@ -20,8 +20,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation); -- 了解环信即时通讯 IM 聊天室不同套餐相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); ## 实现方法 diff --git a/docs/document/v2/web/room_overview.md b/docs/document/v2/web/room_overview.md index 89a425e04..2d90f2aeb 100644 --- a/docs/document/v2/web/room_overview.md +++ b/docs/document/v2/web/room_overview.md @@ -6,9 +6,9 @@ 聊天室是支持多人加入的类似 Twitch 的组织。聊天室中的成员没有固定关系,用户离线后,超过 2 分钟会自动退出聊天室。聊天室成员在离线后,不会收到推送消息。聊天室可以应用于直播、消息广播等。若需调整该时间,需联系环信商务经理。 -聊天室的使用限制视不同套餐版本而定,请参见 使用限制。 +聊天室的使用限制请参见 [使用限制](/document/v2/privatization/uc_limitation.html)。 -本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 消息管理。 +本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 。 ### 群组与聊天室的区别 @@ -32,7 +32,7 @@ | 功能 | 描述 | | :------------- | :----------------------------------------------------------- | -| 创建聊天室 | 只有被赋予 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 | +| 创建聊天室 | 只有被赋予 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 | | 加入聊天室 | 没有被加入黑名单的所有 app 用户可自由加入聊天室。 | | 离开聊天室 | 所有聊天室成员都可以自由退出聊天室;也可能被动离开聊天室,原因分为:被管理员移出聊天室、聊天室解散和用户账号离线。 | | 销毁聊天室 | 需要聊天室所有者权限。 | diff --git a/docs/document/v2/web/thread.md b/docs/document/v2/web/thread.md index ad3e45ecb..362531ff1 100644 --- a/docs/document/v2/web/thread.md +++ b/docs/document/v2/web/thread.md @@ -4,9 +4,6 @@ 子区是群组成员的子集,是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -25,9 +22,8 @@ 开始前,请确保满足以下条件: - 完成 4.0.7 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/web/thread_message.md b/docs/document/v2/web/thread_message.md index ecf271a27..ccf9c1027 100644 --- a/docs/document/v2/web/thread_message.md +++ b/docs/document/v2/web/thread_message.md @@ -32,9 +32,8 @@ 开始前,请确保满足以下条件: - 完成 4.0.7 及以上版本 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/web/user_relationship.md b/docs/document/v2/web/user_relationship.md index c9512245c..8cb4ac4a6 100644 --- a/docs/document/v2/web/user_relationship.md +++ b/docs/document/v2/web/user_relationship.md @@ -20,8 +20,8 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 ## 前提条件 开始前,请确保满足以下条件: -- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/web/userprofile.md b/docs/document/v2/web/userprofile.md index ae33c3add..1534a2a5e 100644 --- a/docs/document/v2/web/userprofile.md +++ b/docs/document/v2/web/userprofile.md @@ -27,7 +27,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -68,7 +68,7 @@ conn.updateUserInfo("nickname", "Your nickname").then((res) => { }); ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 备注 | | :---------- | :----- | :------------------------------------------------------------------------------------------------- | @@ -177,4 +177,4 @@ conn 如果需要在名片中展示更丰富的信息,可以在 `ext` 中添加更多字段。 -可参考 [示例项目](https://github.com/easemob/webim/tree/dev_3.0/demo) 中 src/components/contact/ 下 UserInfoModal 组件。 +可参考 Demo 中 src/components/contact/ 下 UserInfoModal 组件。 diff --git a/docs/document/v2/windows/group_attributes.md b/docs/document/v2/windows/group_attributes.md index de194840a..af6412d3d 100644 --- a/docs/document/v2/windows/group_attributes.md +++ b/docs/document/v2/windows/group_attributes.md @@ -18,8 +18,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/windows/group_manage.md b/docs/document/v2/windows/group_manage.md index e1fd8e8de..669df3295 100644 --- a/docs/document/v2/windows/group_manage.md +++ b/docs/document/v2/windows/group_manage.md @@ -23,8 +23,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); ## 实现方法 @@ -129,7 +128,7 @@ SDKClient.Instance.GroupManager.DestroyGroup(groupId, new CallBack( ### 退出群组 -群成员可以调用 `LeaveGroup` 方法退出群组,其他成员收到 `IGroupManagerDelegate#OnMemberExitedFromGroup` 回调。退出群组后,该用户将不再收到群消息。群主不能调用该接口退出群组,只能调用 [DestroyGroup](https://docs-im.easemob.com/ccim/unity/group2#解散群组) 方法解散群组。 +群成员可以调用 `LeaveGroup` 方法退出群组,其他成员收到 `IGroupManagerDelegate#OnMemberExitedFromGroup` 回调。退出群组后,该用户将不再收到群消息。群主不能调用该接口退出群组,只能调用 [DestroyGroup](group_manage#解散群组) 方法解散群组。 示例代码如下: diff --git a/docs/document/v2/windows/group_members.md b/docs/document/v2/windows/group_members.md index 544edad31..4350830a0 100644 --- a/docs/document/v2/windows/group_members.md +++ b/docs/document/v2/windows/group_members.md @@ -21,9 +21,9 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); - 了解群成员角色,详见 [群组概述](group_overview.html); -- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 + ## 实现方法 diff --git a/docs/document/v2/windows/message_manage.md b/docs/document/v2/windows/message_manage.md index b016feda4..389a66a7d 100644 --- a/docs/document/v2/windows/message_manage.md +++ b/docs/document/v2/windows/message_manage.md @@ -31,7 +31,7 @@ SQLCipher 用于加密存储本地消息的数据库。即时通讯 IM SDK 使 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/windows/message_modify.md b/docs/document/v2/windows/message_modify.md index a1a7433ec..7a7fcbe77 100644 --- a/docs/document/v2/windows/message_modify.md +++ b/docs/document/v2/windows/message_modify.md @@ -9,7 +9,7 @@ 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。 ::: -你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。 +你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。 示例代码如下: diff --git a/docs/document/v2/windows/message_receipt.md b/docs/document/v2/windows/message_receipt.md index b13109547..77687bbb4 100644 --- a/docs/document/v2/windows/message_receipt.md +++ b/docs/document/v2/windows/message_receipt.md @@ -4,7 +4,7 @@ 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。 -群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。 @@ -40,8 +40,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html); -- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 @@ -223,7 +223,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。 -仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。 +私有部署即时通讯服务默认支持并开通群消息已读回执功能。 1. 群主或群管理员发送消息时若需已读回执,需设置 `Message` 的 `IsNeedGroupAck` 为 `true`。 diff --git a/docs/document/v2/windows/message_retrieve.md b/docs/document/v2/windows/message_retrieve.md index 8b70ded09..e3d434adf 100644 --- a/docs/document/v2/windows/message_retrieve.md +++ b/docs/document/v2/windows/message_retrieve.md @@ -4,9 +4,6 @@ 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取和删除会话和消息。 -:::tip -本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 -::: ## 实现原理 @@ -24,7 +21,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -115,10 +112,11 @@ SDKClient.Instance.ChatManager.PinConversation(convId, isPinned, new CallBack( ### 分页获取指定会话的历史消息 -你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。 +你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。 + ```csharp SDKClient.Instance.ChatManager.FetchHistoryMessagesFromServer(conversationId, type, startId, pageSize, new ValueCallBack>( // 获取历史消息成功。 diff --git a/docs/document/v2/windows/message_send_receive.md b/docs/document/v2/windows/message_send_receive.md index 91a9f94ed..f07581809 100644 --- a/docs/document/v2/windows/message_send_receive.md +++ b/docs/document/v2/windows/message_send_receive.md @@ -31,7 +31,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -98,7 +98,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); ### 撤回消息 -发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。 +发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。 ```csharp SDKClient.Instance.ChatManager.RecallMessage("Message ID", new CallBack( diff --git a/docs/document/v2/windows/multi_device.md b/docs/document/v2/windows/multi_device.md index d1dd57849..6f8b5d398 100644 --- a/docs/document/v2/windows/multi_device.md +++ b/docs/document/v2/windows/multi_device.md @@ -11,7 +11,7 @@ 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。 -你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: +你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量: ![img](@static/images/common/multidevice_device_count.png) @@ -24,7 +24,7 @@ - +
@@ -38,7 +38,7 @@ - +
单端/多端登录
多端登录若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br/>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。
即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。
@@ -176,7 +176,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate); 你可以按照以下步骤设置登录设备所属的平台: -1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 +1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。 diff --git a/docs/document/v2/windows/overview.md b/docs/document/v2/windows/overview.md index ad8605484..13a4f6b3d 100644 --- a/docs/document/v2/windows/overview.md +++ b/docs/document/v2/windows/overview.md @@ -6,7 +6,7 @@ ## 前提条件 -开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。 +开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。 ## 集成环境 @@ -49,15 +49,15 @@ SDKClient.Instance.InitWithOptions(options); 目前注册的方式有以下几种: - 通过控制台注册。 - 通过 REST API 接口注册。 -- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。 +- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。 ### 控制台注册 -控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。 +控制台的注册请到 **运营服务->用户管理** 页面下进行注册。 ### REST API 注册 -请参考 [注册用户](/document/server-side/account_system.html#注册用户)。 +请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。 ### SDK 注册 @@ -83,7 +83,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录: - 用户 ID + 密码 - 用户 ID + token -登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。 +登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。 调用登录接口后,收到 `OnConnected` 回调表明 SDK 与环信服务器连接成功。 @@ -113,7 +113,7 @@ SDKClient.Instance.Login(username, password, ); ``` -2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。 +2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。 :::notice 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。 diff --git a/docs/document/v2/windows/presence.md b/docs/document/v2/windows/presence.md index 24535c2cb..01dd28002 100644 --- a/docs/document/v2/windows/presence.md +++ b/docs/document/v2/windows/presence.md @@ -6,9 +6,6 @@ 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。 -:::notice -私有化版本不支持在线状态订阅。 -::: ## 技术原理 @@ -41,8 +38,8 @@ 使用在线状态功能前,请确保满足以下条件: 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通在线状态订阅功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通在线状态订阅功能。 ## 实现方法 diff --git a/docs/document/v2/windows/quickstart.md b/docs/document/v2/windows/quickstart.md index 0456a8735..eb7bacf87 100644 --- a/docs/document/v2/windows/quickstart.md +++ b/docs/document/v2/windows/quickstart.md @@ -25,12 +25,12 @@ - Visual Studio IDE 2019 或以上; - .Net Framework 4.5.2 或以上; - 目前 Windows SDK 仅支持 64 位运行模式; -- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。 +- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。 ## 项目设置 实现发送和接收单聊文本消息之前,参考以下步骤设置你的项目。 - + +1. 下载:点击 [Windows SDK](https://downloadsdk.easemob.com/downloads/SDK/WinSDK/agora_chat_sdk.1.2.0.nupkg) 进行下载,下载的 `NuGet` 包一般存放在 `C:\Users\XXX\Downloads` (`XXX` 为本机用户名); 2. 将下载的 `NuGet` 包拷贝到自己的工作目录,比如 `D:\workspace\WinSDK` 下,以下说明以此目录举例; 3. 在 Visual Studio 开发环境里,右键点击 `windows-example` 项目,选择 **管理 NuGet 程序包 (N)...**; 4. 在弹出的 `NuGet:windows-example` tab 页面里,点击右上角的小齿轮会弹出 NuGet 程序包源的设置窗体,点击窗体右上角的 **+** 按钮,在 **包源** 的文本框内会出现 **Package source** 这一栏,点击选中,并修改文本框下的 **名称** 和 **源**。例如 **名称** 可以设置为 `Local Package source`,**源** 则设置为第 2 步中的目录, `D:\workspace\WinSDK`,点击确定; @@ -99,7 +99,7 @@ SDKClient.Instance.CreateAccount(username, password, callback: new CallBack( ``` :::notice -该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见:[注册单个用户](https://docs-im.easemob.com/ccim/rest/accountsystem#注册单个用户)。 +该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见:[注册单个用户](/document/v2/server-side/account_system.html#注册用户)。 ::: ### 5. 登录账号 diff --git a/docs/document/v2/windows/reaction.md b/docs/document/v2/windows/reaction.md index 5321aa96d..ee88e9ad5 100644 --- a/docs/document/v2/windows/reaction.md +++ b/docs/document/v2/windows/reaction.md @@ -7,7 +7,6 @@ :::notice 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。 -2. 私有化版本不支持 Reaction 功能。 ::: ## 技术原理 @@ -31,8 +30,8 @@ Reaction 场景示例如下: 开始前,请确保满足以下条件: 1. 完成 `1.0.5 或 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -3. 已联系商务开通 Reaction 功能。 +2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +3. 私有部署已开通 Reaction 功能。 ## 实现方法 diff --git a/docs/document/v2/windows/releasenote.md b/docs/document/v2/windows/releasenote.md index d8e2c66ff..9a6367530 100644 --- a/docs/document/v2/windows/releasenote.md +++ b/docs/document/v2/windows/releasenote.md @@ -181,7 +181,6 @@ - [在线状态订阅](presence.html) - [消息表情回复](reaction.html) - [管理子区](thread.html) -- [内容举报](moderation.html) ## 版本 V1.0.2.1 2022-06-22 @@ -190,11 +189,10 @@ - 在单聊、群聊、聊天室中发送和接收消息; - 管理会话和消息; - 管理群组和聊天室; -- 关于详细功能概述请参见:[产品概述](/product/introduction.html) 具体集成请参考以下文档: -- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html) +- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html) - [环信即时通讯 IM Windows 快速入门](quickstart.html) - [消息管理 Windows](message_overview.html) - [群组 Windows](group_overview.html) diff --git a/docs/document/v2/windows/room_attributes.md b/docs/document/v2/windows/room_attributes.md index 5f883c454..3dbbce75b 100644 --- a/docs/document/v2/windows/room_attributes.md +++ b/docs/document/v2/windows/room_attributes.md @@ -20,8 +20,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html); -- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html); + ## 实现方法 diff --git a/docs/document/v2/windows/room_manage.md b/docs/document/v2/windows/room_manage.md index de8dd6e1b..63bc44afa 100644 --- a/docs/document/v2/windows/room_manage.md +++ b/docs/document/v2/windows/room_manage.md @@ -25,9 +25,8 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。 -- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 -- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。 ## 实现方法 @@ -36,9 +35,9 @@ ### 创建聊天室 -仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 +仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。 -你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。 +你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。 示例代码如下: diff --git a/docs/document/v2/windows/room_members.md b/docs/document/v2/windows/room_members.md index 221968878..8cfc9ed9c 100644 --- a/docs/document/v2/windows/room_members.md +++ b/docs/document/v2/windows/room_members.md @@ -21,8 +21,7 @@ 开始前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html); -- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html); -- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 +- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html); ## 实现方法 diff --git a/docs/document/v2/windows/thread.md b/docs/document/v2/windows/thread.md index 0d4813c3e..9b424912e 100644 --- a/docs/document/v2/windows/thread.md +++ b/docs/document/v2/windows/thread.md @@ -6,9 +6,6 @@ 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。 -:::notice -私有化版本不支持子区功能。 -::: ## 技术原理 @@ -29,9 +26,8 @@ 开始前,请确保满足以下条件: - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。 -- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/windows/thread_message.md b/docs/document/v2/windows/thread_message.md index c0dc074a8..9517d47e8 100644 --- a/docs/document/v2/windows/thread_message.md +++ b/docs/document/v2/windows/thread_message.md @@ -30,8 +30,8 @@ 开始前,请确保满足以下条件: - 完成 1.0.6 以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 -- 联系商务开通子区功能。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 +- 私有部署已开通子区功能。 ## 实现方法 diff --git a/docs/document/v2/windows/user_relationship.md b/docs/document/v2/windows/user_relationship.md index 00ab02db7..31326c2ff 100644 --- a/docs/document/v2/windows/user_relationship.md +++ b/docs/document/v2/windows/user_relationship.md @@ -29,7 +29,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理 开始前,请确保满足以下条件: - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 diff --git a/docs/document/v2/windows/userprofile.md b/docs/document/v2/windows/userprofile.md index 28cbd8cc6..e29fa15b2 100644 --- a/docs/document/v2/windows/userprofile.md +++ b/docs/document/v2/windows/userprofile.md @@ -24,7 +24,7 @@ 设置用户属性前,请确保满足以下条件: - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。 -- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。 +- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。 ## 实现方法 @@ -56,7 +56,7 @@ SDKClient.Instance.UserInfoManager.UpdateOwnInfo(userInfo, new CallBack( )); ``` -若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 +若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。 | 字段 | 类型 | 描述 | | :---------- | :----- | :------------------------------------------------------------------------------------------------ | diff --git a/docs/private/media/conference_android.md b/docs/private/media/conference_android.md index 316262041..aebc7b2b6 100644 --- a/docs/private/media/conference_android.md +++ b/docs/private/media/conference_android.md @@ -70,7 +70,7 @@ dependencies { 环信为管理者与开发者提供了方便易用的App工作台– **环信管理后台**。
通过环信管理后台可以完成应用创建、服务配置、企业信息修改基础功能;同时,管理后台也提供了发送消息、用户管理、群组管理、聊天室管理和数据统计等管理监控功能。
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -255,8 +255,8 @@ EMConferenceListener listener = new EMConferenceListener() { ### 8. 加入会议 -在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
登录环信ID以后,可以加入会议了,通过 [EMConferenceManager#joinRoom](http://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_conference_manager.html#a8940f54febf2086ccd978d75980c7763) API加入房间。
- 创建会议成功以后,默认超时时间为三分钟,超过三分钟没有人加入,会议会自动销毁; - 另外当会议中所有人离开2分钟后,会议也会被销毁; @@ -1175,7 +1175,7 @@ public void onAttributesUpdated(EMConferenceAttribute[] attributes) {} #### **私有部署** -私有部署设置方法参见[私有云 Android SDK集成配置](../im/uc_android_private.md)。 +私有部署设置方法参见[私有云 Android SDK集成配置](/document/v2/android/privatecloud.html)。 ### 音视频管理 diff --git a/docs/private/media/conference_ios.md b/docs/private/media/conference_ios.md index 4bf4035f8..1c8f3cbc5 100644 --- a/docs/private/media/conference_ios.md +++ b/docs/private/media/conference_ios.md @@ -112,7 +112,7 @@ EMConferenceManagerDelegate.h ### 1. 环信后台注册appkey -在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -185,8 +185,8 @@ retOpt.enableConsoleLog = YES; ### 7. 环信ID注册、登录 -在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
### 8. 音视频功能初始化 @@ -834,7 +834,7 @@ region.z = 9; #### 私有部署 -私有部署设置方法参见[私有云sdk集成配置](../im/uc_iOS_private.md) +私有部署设置方法参见[私有云sdk集成配置](/document/v2/ios/privatecloud.html) ### 音视频管理 diff --git a/docs/private/media/conference_web.md b/docs/private/media/conference_web.md index 56f54527d..ebdb7527b 100644 --- a/docs/private/media/conference_web.md +++ b/docs/private/media/conference_web.md @@ -35,7 +35,7 @@ HTTPS=true npm start ### 1. 环信后台注册 appkey -在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -86,8 +86,8 @@ emedia.config({ ### 5. 环信ID注册、登录 -在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/web/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/web/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/web/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/web/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。
### 6. 进入会议 @@ -604,7 +604,7 @@ emedia.fileReport() //无参数 #### **11. 私有部署** -私有部署设置方法参见[私有云sdk集成配置](../im/uc_Web_private.md)。 +私有部署设置方法参见[私有云sdk集成配置](/document/v2/web/privatecloud.html)。 ### 音视频管理 diff --git a/docs/private/media/one2one_android.md b/docs/private/media/one2one_android.md index d69970715..c4355c8d4 100644 --- a/docs/private/media/one2one_android.md +++ b/docs/private/media/one2one_android.md @@ -70,7 +70,7 @@ dependencies { 环信为管理者与开发者提供了方便易用的App工作台– **环信管理后台**。
通过环信管理后台可以完成应用创建、服务配置、企业信息修改基础功能;同时,管理后台也提供了发送消息、用户管理、群组管理、聊天室管理和数据统计等管理监控功能。
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -192,9 +192,9 @@ public void init(Context context) { ### 8. 环信ID注册登录 -在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。 +在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。 -若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7) +若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7) ### 9. 音视频功能初始化 @@ -555,7 +555,7 @@ EMClient.getInstance().callManager().setWaterMark(watermark); ### 私有部署 -私有部署设置方法参见[私有云 Android SDK集成配置](../im/uc_android_private.md)。 +私有部署设置方法参见[私有云 Android SDK集成配置](/document/v2/android/privatecloud.html)。 ## 客户端API diff --git a/docs/private/media/one2one_ios.md b/docs/private/media/one2one_ios.md index 4b2bcf299..a83dd55c1 100644 --- a/docs/private/media/one2one_ios.md +++ b/docs/private/media/one2one_ios.md @@ -49,7 +49,7 @@ ### 1. 环信后台注册appkey -在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -133,9 +133,9 @@ retOpt.enableConsoleLog = YES; ### 7. 环信ID注册、登录 -在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/ios/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。 +在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/ios/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。 -若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/ios/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7) +若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/ios/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7) ### 8. 音视频功能初始化 @@ -591,7 +591,7 @@ options.enableCustomizeVideoData = YES; ### 私有部署 -私有部署设置方法参见[私有云sdk集成配置](../im/uc_iOS_private.md) +私有部署设置方法参见[私有云sdk集成配置](/document/v2/ios/privatecloud.html) ## 客户端API diff --git a/docs/private/media/one2one_web.md b/docs/private/media/one2one_web.md index f4771f439..128bafb08 100644 --- a/docs/private/media/one2one_web.md +++ b/docs/private/media/one2one_web.md @@ -36,7 +36,7 @@ HTTPS=true npm start ### 1. 环信后台注册 appkey -在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。 +在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。 ### 2. 创建项目 @@ -348,7 +348,7 @@ var rtcCall = new webrtc.Call({ ### 私有部署 -私有部署设置方法参见[私有云sdk集成配置](../im/uc_Web_private.md)。 +私有部署设置方法参见[私有云sdk集成配置](/document/v2/web/privatecloud.html)。 ## 客户端API diff --git a/docs/private/media/rest_introduction.md b/docs/private/media/rest_introduction.md index 6d980baee..8ea04a915 100644 --- a/docs/private/media/rest_introduction.md +++ b/docs/private/media/rest_introduction.md @@ -1,6 +1,6 @@ # REST接口简介 -音视频云的REST接口规则与即时通讯的REST规则是一致的,参考[服务端集成](../../document/server-side/overview.md) +音视频云的REST接口规则与即时通讯的REST规则是一致的,参考[服务端集成](/document/v2/server-side/overview.md) -在调用音视频云的REST接口前,需获取token,参考 [获取管理员权限](../../document/server-side/easemob_app_token.html#获取管理员权限-token) \ No newline at end of file +在调用音视频云的REST接口前,需获取token,参考 [获取管理员权限](/document/v2/server-side/easemob_app_token.html#获取管理员权限-token) \ No newline at end of file diff --git a/docs/private/media/scenario_live.md b/docs/private/media/scenario_live.md index 03b9c034b..907439311 100644 --- a/docs/private/media/scenario_live.md +++ b/docs/private/media/scenario_live.md @@ -56,17 +56,17 @@ 多人视频会议如果需要环信即时通讯云的文字聊天室实现IM沟通功能,请详见文档: -服务器端: [聊天室管理](http://docs-im-beta.easemob.com/document/server-side/chatroom.html) +服务器端:[服务端集成](/document/v2/server-side/overview.html) -Android: [聊天室管理](http://docs-im-beta.easemob.com/document/android/room_overview.html) +Android:[Android SDK 介绍及导入](/document/v2/android/quickstart.html) -iOS: [聊天室管理](http://docs-im-beta.easemob.com/document/ios/room_overview.html) +iOS:[iOS SDK 快速集成](/document/v2/ios/quickstart.html) -web端: [聊天室管理](http://docs-im-beta.easemob.com/document/web/room_overview.html) +web端: [Web IM 介绍](/document/v2/web/quickstart.html) -微信小程序: [聊天室管理](http://docs-im-beta.easemob.com/document/applet/room_overview.html) +微信小程序: [微信小程序SDK简介](/document/v2/applet/wechat.html) -PC端: [聊天室管理](https://docs-im.easemob.com/im/pc/basics/chatroom) +PC端: [桌面端集成说明](https://docs-im.easemob.com/im/pc/intro/integration) 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

dL6vV4f`ngD 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

grX1 zWe5*~PG{jYF6mA<)1-nU+GoUD$#l~Kd2m1ZAhEax9z`b@;Lx}<1tG(Z>XY@6FLpJ892FT5T ztgxxZmjnOjrPCt)Ksvm_n)u<%sVS?v(lWY=CLP zH<{{+$FS!Lq%mRi0CLs<@8sp;$#HZWK@85rIpKAh?N`9bEUxbxP?wqjGGz>D&&V49 zqd1#uWa|-wXGX)TKO<^AqwPbhj%e#Kg#9)7H z&7`#*pPR!?F)o|)%kN)vAd4}clcCG+41$d8hw)g03UoAq3>aZ4z#QpBepB6+mvdE0uEuaE*_q z#KIYpr1xMs{wo>N%?g`KvRdK`cyk;8aVVtQQogw!_`HU>o?6x*i<3)JfN%t`YZ^Vj z)B-_X{ebiD%A}K@(^6rJz~@|m2sGPWSVhTxa+ZFOYW$buMp$UB{M87};U?eOM9qs# zy5HIU7d4uOO&4+A8zTbfB7PBeuh2P#wZk97&*BT&<{El#%HPU|Roct)*8q>gIHu-GBnEP!2EYPuXS{y+>0Qz!R4V)`=}4NAvK=4z%p3La)%8zvcR|{5bz6GvJ@QE z!>-7Pa~+f0bUY0(`Yg0oZ#X1(;F3vO8kqZk3_aA$ku(A(BIFM7*Q!CuzB$aaLvGG9 z%dWx{2WEG?Rv<%x7H9gpnssZ*BMH_#-d7w9OraA1wep&GL}DdIJrtLx`RkKeEG^E! z3j?#|TOZgI;C01dajbn5NJc$sCYKb{djn|2yGoj)($@6~Mv{P+=Hl`a!JZG;j^9u91Z%Bc*U zFar3e$$sO-6eGUj!Lw2)${VwTQrnw-^k<(C(~05|?P^#>|CfkRCOpJ-9vhFteEK zns!O`p8QkcA>gugB6|P9Y-MiXd=m>q=rukO`3;DBkl)*w+RN62tJLaki$BxVyni|P zU5Va=q8J(UHWx$aHlw*S)_GWY(Y3COhD?n)D60)609?)2I8%R)b@Hl`p>Nk7!Dsf}B?sIf@$7@=7-3O&fwDvE#^?oB&h5 zP$%dV*mx)Rz^Ep`fDPFYphtW`hU9Q^GuXH2PulV6qV zQAsQeib{^riCVQxjJ>l!{e#mkLDMU-2v;g7G*NsJ=JB5Ds(@j^+e4_1*>E+;KI;{| z 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 N+WbY}$PIc)#U}IL88jU#RDfwb~{z zR$$}WlPW8Q#}jSlhBBg`?99B2T9mM=A^pBq*7d`|a%r&c-HYB-hBRu15s$-Nf?;B+ zhj-DF^tl4_XO*m%L`Zis)D$u6O)bKvXBSckai}uPh1vGZ0OCQ{);72XIlKEiz+0)4 ze6uebE+rU8mVmKeaaQr{b~a@?uDw>y(LyE@2_4O> zx~&vg+xb?=W8ru^54BKuy%c5(dL+?iSf_`b9JTLLqQipg&lS}{$91i=#Z{k^+k5~y zFU$sF;#X)%2jCbrmtyyecody;A+~A?Nwom3G3NFSYAUQD>EQEno?1h~40_LQScU7( zATNt&WW3;P8JivSiK(%+Gh!tNm&O_C2+C_(&Ir!;!Zpsh`W!ZrA*8ka9t|z)YcY5& z_2jyN)#~9C$A&Q-ee8NnLUjhzJe9META;VS++QAvC3bsk7foLy&`;}(xR)7;uMI5i z^QFV^mQ~Q6RDX6Ty7sqNzPFY8vqOIT(35DJDfckr)JRVvG=_*5>MAq1kkW?Lp|`S` zz}76fWnQivPTx%vws1>BrHokn(?Jl_mL6p?A0)+(xR#}uBUp$XU3G)V08A`DN+K!#BWJOy)<;c17ufAG!aV*#lxLMdY%mP z#v>qJ^DEkS6ARVk2j{aZg?7-wceGWKt!jYF`XJGq?GDPeROJ%(Y*kfMKL)2G#r}nE zDOp8cxW+;HQ@hvI(EJOHNiLGwqovrKR*mQc3PCf&0njGz4wt*O;Lr!HG6!)aR;Efq z(bS$;S#E*Je!h8UF@oc55P*m&hr+7W(eTt-UXURl3z+7Xwswm5K%SlrnyBPVw_FubWMf2eXOJU9;u zt?wkj=+M9T!rvl_z&FG~>u~f8#lH$hhyC#G8mI?0-}UG?)av|R8$6u~l7utQl|v4T zR(}5@ic2>@*m5nh685(x)CV)5YIt4zs+96!9{2Au)?Wh-#VzOWslva1a_Gxm=K$hY zvV3DX^d9^@w7Pj0ly+afTTD58LH}2dOHx4m&NDC0QvU0W4*5agB{0Ny>D_RDTd1t> z1YT)~!)@2lL&g5z#SXj+vMiC~@1?E&R{ZB0Kz!HhZ?FID9)-UJdvyNRu;kyCb_HC4 z_;2W_7+4Q;<9-+R|Ek!(H{}1S*zd=P{2!|r?2K`gYiNDwDF7rnc7<>B=U*SZcbu@NZ2%2Y%qjvP4>tD>x^^H(B- hXMz3te_P!)nfPsa$DFj3bAWh9RBmV}=PNx3`ai9<)RzDN literal 0 HcmV?d00001 diff --git a/docs/push/push_androidvendor_statistics.md b/docs/push/push_androidvendor_statistics.md index 9a6054342..e89c4e42d 100644 --- a/docs/push/push_androidvendor_statistics.md +++ b/docs/push/push_androidvendor_statistics.md @@ -20,14 +20,12 @@ #### 1.3、设置回调地址 -根据所在集群设置回调地址(配置 http) +根据所在集群设置回调地址(配置 http),私有化部署见部署手册提供的环信IM REST API信息。 格式为:`http://域名/orgname/appname/push/report/meizu`。 ![img](@static/images/instantpush/push_flyme_callbackaddr.png) -您可以在环信后台,**即时通讯** → **服务概览** 中查看当前 Appkey 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。 -![img](@static/images/instantpush/push_domain_name.png) #### 1.4、开启送达回执 @@ -62,10 +60,8 @@ ##### 2.4.1、回调地址 根据所在集群设置回调地址(配置 https,注意:华为只支持https地址配置) -格式为:`https://域名/orgname/appname/push/report/huawei` -您可以在环信后台,**即时通讯** > **服务概览** 中查看当前 Appkey 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。 +格式为:`https://域名/orgname/appname/push/report/huawei`,私有化部署见部署手册提供的环信IM REST API信息。 -![img](@static/images/instantpush/push_domain_name.png) ##### 2.4.2、证书内容 diff --git a/docs/push/push_by_tag.md b/docs/push/push_by_tag.md index 538f0c215..667370ed2 100644 --- a/docs/push/push_by_tag.md +++ b/docs/push/push_by_tag.md @@ -4,7 +4,7 @@ 你可以通过环信即时通讯控制台创建和管理标签,也可以通过 REST API 进行标签管理。用户与标签是多对多的关系,即一个用户可以对应多个标签,一个标签也可以对应多个用户。 -本文档主要介绍如何调用即时推送 REST API 实现创建及管理推送标签。调用以下方法前,请先参考 [接口频率限制](/document/server-side/error.html/product/limitation.html)了解即时通讯 RESTful API 的调用频率限制。 +本文档主要介绍如何调用即时推送 REST API 实现创建及管理推送标签。 ## 公共参数 @@ -12,9 +12,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :-------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ### 响应参数 @@ -75,7 +75,7 @@ POST https://{host}/{org_name}/{app_name}/push/label 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -145,7 +145,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname} 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html)了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html)了解可能的原因。 ### 示例 @@ -214,7 +214,7 @@ GET https://{host}/{org_name}/{app_name}/push/label 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -284,7 +284,7 @@ DELETE https://{host}/{org_name}/{app_name}/push/label/{labelname} 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -350,7 +350,7 @@ POST https://{host}/{org_name}/{app_name}/push/label/{labelname}/user 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -421,7 +421,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname}/user/{username} 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -492,7 +492,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname}/user 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -564,7 +564,7 @@ DELETE https://{host}/{org_name}/{app_name}/push/label/{labelname}/user 其他参数及描述详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 diff --git a/docs/push/push_certificate_config.md b/docs/push/push_certificate_config.md index e4f67d18e..f09e01afd 100644 --- a/docs/push/push_certificate_config.md +++ b/docs/push/push_certificate_config.md @@ -1,6 +1,6 @@ ## 证书配置 -环信推送与IM使用相同的SDK,SDK下载地址:[下载页](https://www.easemob.com/download/im) +环信推送与IM使用相同的SDK,[SDK下载页](/document/v2/privatization/uc_private.html) Android端推送集成:[Android 推送集成](push_integration_process_android.html) diff --git a/docs/push/push_createproduct_app.md b/docs/push/push_createproduct_app.md index 3f1865fae..543b09a1c 100644 --- a/docs/push/push_createproduct_app.md +++ b/docs/push/push_createproduct_app.md @@ -7,31 +7,26 @@ ### 1、创建环信应用 -注册环信账号,并登录环信通讯云管理后台:[环信通讯云管理后台](https://console.easemob.com/user/login),点击【添加应用】,根据提示填写应用信息,创建您的第一个应用。 +注册环信账号,并登录环信通讯云管理后台:[环信通讯云管理后台](/document/v2/privatization/uc_configure.html#创建应用),点击【添加应用】,根据提示填写应用信息,创建您的第一个应用。 -![img](@static/images/instantpush/push_create_app.png) +![img](@static/images/instantpush/push_create_app.jpg) ### 2、开通PUSH服务 -APP创建成功后,将显示至【应用列表】中,选中创建的APP,点击其【查看】按钮,为您的APP开通相应业务。 +APP创建成功后,将显示至【应用列表】中,选中创建的APP,点击其【管理】按钮,为您的APP开通相应业务。 -![img](@static/images/instantpush/push_view_app.jpg) +左侧菜单栏为环信支持的私有化业务,这里选中【即时推送】→【服务概览】,**私有化服务默认开通PUSH业务**。 -左侧菜单栏为环信云支持的即时通讯、MQTT、短信服务、实时音视频以及PUSH等业务。 +![img](@static/images/instantpush/push_open_app.jpg) -这里选中【即时推送】→【服务概览】,点击页面中【立即开通】按钮开通PUSH业务。 - -![img](@static/images/instantpush/push_enable.png) - -默认开通PUSH免费版,不收取任何费用,如需开通更高版本套餐,请咨询商务经理。 ### 3、集成环信PUSH服务 #### 3.1 SDK下载 -环信推送与IM使用相同的SDK,SDK下载地址:[SDK下载页](https://www.easemob.com/download/im) 。 +环信推送与IM使用相同的SDK,SDK下载地址:[SDK下载页](/document/v2/privatization/uc_private.html) 。 -![img](@static/images/instantpush/push_sdk_download.png) +![img](@static/images/instantpush/push_sdk_download.jpg) :::notice 环信IM用户可直接使用,无需进行移动端集成。 @@ -53,6 +48,6 @@ APP创建成功后,将显示至【应用列表】中,选中创建的APP, 未使用环信IM的用户,需要单独创建用户并进行用户体系集成。 点击【应用概览】进入【用户认证】界面,点击【创建IM用户】可以在页面中添加用户,也可使用REST API进行用户配置。 -用户体系集成介绍参考文档:[用户体系集成](/document/server-side/account_system.html) +用户体系集成介绍参考文档:[用户体系集成](/document/v2/server-side/account_system.html) ![img](@static/images/instantpush/push_bind_user.png) diff --git a/docs/push/push_integration_note_android.md b/docs/push/push_integration_note_android.md index 74f0ef35c..3f23dee05 100644 --- a/docs/push/push_integration_note_android.md +++ b/docs/push/push_integration_note_android.md @@ -6,9 +6,9 @@ 环信推送与环信 IM 使用相同的 SDK,你可以参考 IM 文档导入和集成 SDK, 然后注册登录。 -SDK 导入:[Android SDK 导入](/document/android/quickstart.html#_2-集成-sdk) +SDK 导入:[Android SDK 导入](/document/v2/android/quickstart.html#_2-集成-sdk) -注册登录:[注册登录](/document/android/overview.html#注册用户) +注册登录:[注册登录](/document/v2/android/overview.html#注册用户) **手机权限** @@ -57,4 +57,4 @@ public void onNotificationClick(Context context, EMNotificationMessage notificat ## 3、离线推送集成 -离线推送需参考环信 IM 的[第三方推送集成](/document/android/push.html),集成各个厂商的推送(如不需要离线推送,可忽略)。 \ No newline at end of file +离线推送需参考环信 IM 的[第三方推送集成](/document/v2/android/push.html),集成各个厂商的推送(如不需要离线推送,可忽略)。 \ No newline at end of file diff --git a/docs/push/push_integration_note_ios.md b/docs/push/push_integration_note_ios.md index b3cfe4b2c..4e9706c64 100644 --- a/docs/push/push_integration_note_ios.md +++ b/docs/push/push_integration_note_ios.md @@ -4,9 +4,9 @@ ## iOS SDK 使用须知 -使用 SDK 之前,你需先创建应用,获取应用的唯一标识 App Key,请参见[创建应用](/product/enable_and_configure_IM.html#创建应用)。 +使用 SDK 之前,你需先创建应用,获取应用的唯一标识 App Key,请参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用)。 -环信推送分为在线推送和远程推送,远程推送时通过 APNS 下发,所以你需要配置应用对应的证书,请参见[APNS 推送配置](/document/ios/push.html#开启推送权限并上传推送证书)。 +环信推送分为在线推送和远程推送,远程推送时通过 APNS 下发,所以你需要配置应用对应的证书,请参见[APNS 推送配置](/document/v2/ios/push.html#开启推送权限并上传推送证书)。 ## 集成 SDK @@ -41,7 +41,7 @@ pod install --repo-update ### 手动导入 -[下载环信 demo](https://www.easemob.com/download/demo)。 +[下载环信 demo](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip)。 开发者最开始集成,如果选择手动导入文件集成的方式,只需要向工程中添 HyphenateChat 就可以,下面会介绍具体的集成方式。 @@ -94,7 +94,7 @@ 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)。 +调用的 SDK 接口参数解释如下:\ App Key: 区别 APP 的标识,请参考[开发者注册及管理后台](/document/v2/privatization/uc_configure.html#创建应用)。 \ apnsCertName: iOS 中推送证书名称,请参考[制作与上传推送证书](https://docs-im.easemob.com/im/ios/apns/deploy)。 ### SDK 登录流程 @@ -110,7 +110,7 @@ demo 中的 SDK 文件夹为 **Hyphenate SDK**,将 SDK 文件夹拖入到工 }]; ``` -有关更多注册登录等基础功能,请参考[iOS SDK基础功能](https://docs-im.easemob.com/im/ios/sdk/basic)。 +有关更多注册登录等基础功能,请参考[iOS SDK基础功能](/document/v2/ios/overview.html)。 ## SDK 推送集成 diff --git a/docs/push/push_send_notification.md b/docs/push/push_send_notification.md index 2d48add80..ae108d6d8 100644 --- a/docs/push/push_send_notification.md +++ b/docs/push/push_send_notification.md @@ -19,9 +19,9 @@ | 参数 | 类型 | 是否必需 | 描述 | | :--------- | :----- | :------- | :-------------------------------------------------- | -| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。 | -| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。 | -| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。 | +| `host` | String | 是 | 访问 RESTful API 的域名或服务器信息。
-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。
-私有化集成为部署后 `服务器地址:端口`。 | +| `org_name` | String | 是 | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。 | +| `app_name` | String | 是 | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。 | | `username` | String | 是 | 用户 ID。 | ### 响应参数 @@ -37,7 +37,7 @@ Authorization:`Bearer ${YourAppToken}` -为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 app token 鉴权](/document/server-side/easemob_app_token.html)。 +为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 app token 鉴权](/document/v2/server-side/easemob_app_token.html)。 ## 以同步方式发送推送通知 @@ -89,7 +89,7 @@ POST https://{host}/{org_name}/{app_name}/push/sync/{target} 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -210,7 +210,7 @@ POST https://{host}/{org_name}/{app_name}/push/single 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -291,7 +291,7 @@ POST https://{host}/{org_name}/{app_name}/push/list/label 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -366,7 +366,7 @@ POST https://{host}/{org_name}/{app_name}/push/task 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 ### 示例 @@ -437,7 +437,7 @@ POST https://{host}/{org_name}/{app_name}/push/message 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 #### 示例 @@ -501,7 +501,7 @@ POST https://{host}/{org_name}/{app_name}/push/message/{messageId} 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 #### 示例 @@ -569,7 +569,7 @@ POST https://{host}/{org_name}/{app_name}/push/task/broadcast 其他参数及说明详见 [公共参数](#公共参数)。 -如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。 +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。 #### 示例 diff --git a/static/images/instantpush/push_create_app.jpg b/static/images/instantpush/push_create_app.jpg new file mode 100644 index 0000000000000000000000000000000000000000..996edd240e15e060a8935075b7f4ba3d4f169ba5 GIT binary patch literal 114317 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 literal 0 HcmV?d00001 diff --git a/static/images/instantpush/push_open_app.jpg b/static/images/instantpush/push_open_app.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3cb824cfea96c00e1fa7e9442099cb3e5b074b8f GIT binary patch literal 147291 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
?Au@t>;y0arV?%=4wa<+HgEY3bl=o0lFYX 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
MSM}|Fvm&KS`U<){6c7 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

`2$QQh_6Vw6cT-Rmp0aiuWds7lY3ZC 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 YN3vBVmGA#h&p!S~i{Sr{=YOC6Z?WDXJpcdz literal 0 HcmV?d00001 diff --git a/static/images/privitization/deploy_user_manage.png b/static/images/privitization/deploy_user_manage.png new file mode 100644 index 0000000000000000000000000000000000000000..247892ae1aee18ef3fe934ce01f1174ca82d83a5 GIT binary patch literal 160170 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%0A9fcuMiwfkPI9i`&6inlU%%b)aa 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 literal 0 HcmV?d00001 diff --git a/static/images/privitization/faq-msgdeliveryquery.jpg b/static/images/privitization/faq-msgdeliveryquery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5b0b6e3d6e8f94210349dfde162a0d948b973bf GIT binary patch literal 264025 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

chs24a3p(bm?R|s%CL*f+Seri7rHI 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%0DJ1)yd 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 Cq+%oh literal 0 HcmV?d00001 diff --git a/static/images/privitization/faq-userconnectionstatus.jpg b/static/images/privitization/faq-userconnectionstatus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5de5029ec1a63d20a1271037c044eef4d49193db GIT binary patch literal 233498 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%0D$HH$@@b6ecHk~O0Vzj@I#b2DW%CCw4 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�LJKJJ>eu3LIG2uSwhOE;#NKljA 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

qe9)IPN9Qt_j0$ZwiiN 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 C+f@Ak literal 0 HcmV?d00001 diff --git a/static/images/privitization/framework.jpg b/static/images/privitization/framework.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6738f5f7bb77d50faf604c5440b1f025c97003ea GIT binary patch literal 101130 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 Cn{u20 literal 0 HcmV?d00001