├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── LICENSE
├── README.md
├── docs
├── GLOSSARY.md
├── README.md
├── SUMMARY.md
├── api.md
├── book.json
├── chatroom
│ ├── ban.md
│ ├── block.md
│ ├── chatroom.md
│ ├── demotion.md
│ ├── distribute.md
│ ├── gag.md
│ ├── keepalive.md
│ ├── mute-members.md
│ └── whitelist
│ │ ├── message.md
│ │ └── user.md
├── conversation
│ └── conversation.md
├── errorcode.md
├── group
│ ├── ban-user.md
│ ├── ban.md
│ ├── gag.md
│ ├── group.md
│ ├── mute-all-members.md
│ ├── mute-members.md
│ └── whiteList
│ │ ├── ban-user.md
│ │ └── mute-user.md
├── js
│ └── banner.js
├── message
│ ├── chatroom.md
│ ├── group.md
│ ├── history.md
│ ├── private.md
│ └── system.md
├── push
│ └── push.md
├── sensitive
│ └── sensitive.md
├── style
│ ├── logo.png
│ └── website.css
└── user
│ ├── blacklist.md
│ ├── block.md
│ ├── mute-chatrooms.md
│ ├── mute-groups.md
│ ├── online-status.md
│ ├── tag.md
│ └── user.md
├── example
├── co
│ ├── chatroom
│ │ ├── ban.js
│ │ ├── block.js
│ │ ├── chatroom.js
│ │ ├── demotion.js
│ │ ├── distribute.js
│ │ ├── gag.js
│ │ ├── keepalive.js
│ │ └── whitelist
│ │ │ ├── message.js
│ │ │ └── user.js
│ ├── conversation.js
│ ├── group
│ │ ├── group-gag.js
│ │ └── group.js
│ ├── message
│ │ ├── chatroom.js
│ │ ├── group.js
│ │ ├── history.js
│ │ ├── private.js
│ │ └── system.js
│ ├── sensitive.js
│ └── user
│ │ ├── blacklist.js
│ │ ├── block.js
│ │ └── user.js
└── promise
│ ├── chatroom
│ ├── ban.js
│ ├── block.js
│ ├── chatroom.js
│ ├── demotion.js
│ ├── distribute.js
│ ├── gag.js
│ ├── keepalive.js
│ └── whitelist
│ │ ├── message.js
│ │ └── user.js
│ ├── conversation.js
│ ├── group
│ ├── group-gag.js
│ ├── group-mute-all.js
│ ├── group-mute-member.js
│ ├── group-mute-whitelist.js
│ └── group.js
│ ├── message
│ ├── chatroom.js
│ ├── group.js
│ ├── history.js
│ ├── private.js
│ └── system.js
│ ├── push.js
│ ├── sensitive.js
│ └── user
│ ├── blacklist.js
│ ├── block.js
│ ├── tag.js
│ └── user.js
├── function-list.md
├── index.js
├── lib
├── chatroom
│ ├── api.json
│ ├── ban
│ │ ├── api.json
│ │ └── index.js
│ ├── block
│ │ ├── api.json
│ │ └── index.js
│ ├── demotion
│ │ ├── api.json
│ │ └── index.js
│ ├── distribute
│ │ ├── api.json
│ │ └── index.js
│ ├── gag
│ │ ├── api.json
│ │ └── index.js
│ ├── index.js
│ ├── keepalive
│ │ ├── api.json
│ │ └── index.js
│ ├── verify.json
│ └── whitelist
│ │ ├── index.js
│ │ ├── message-api.json
│ │ ├── message.js
│ │ ├── user-api.json
│ │ └── user.js
├── conversation-type.js
├── conversation
│ ├── api.json
│ ├── index.js
│ └── verify.json
├── group
│ ├── api.json
│ ├── gag
│ │ ├── api.json
│ │ └── index.js
│ ├── index.js
│ ├── mute-all-member
│ │ ├── api.json
│ │ └── index.js
│ ├── mute-member
│ │ ├── api.json
│ │ └── index.js
│ ├── mute-whitelist
│ │ ├── api.json
│ │ └── index.js
│ └── verify.json
├── message
│ ├── chatroom
│ │ ├── api.json
│ │ └── index.js
│ ├── discussion
│ │ ├── api.json
│ │ └── index.js
│ ├── group
│ │ ├── api.json
│ │ └── index.js
│ ├── history
│ │ ├── api.json
│ │ ├── index.js
│ │ └── verify.json
│ ├── index.js
│ ├── private
│ │ ├── api.json
│ │ └── index.js
│ ├── system
│ │ ├── api.json
│ │ └── index.js
│ └── verify.json
├── push
│ ├── api.json
│ ├── index.js
│ └── verify.json
├── request.js
├── rongcloud.js
├── sensitive
│ ├── api.json
│ ├── index.js
│ └── verify.json
├── user
│ ├── api.json
│ ├── blacklist
│ │ ├── api.json
│ │ └── index.js
│ ├── block
│ │ ├── api.json
│ │ └── index.js
│ ├── index.js
│ ├── online-status
│ │ ├── api.json
│ │ └── index.js
│ ├── tag
│ │ ├── api.json
│ │ └── index.js
│ └── verify.json
└── utils.js
├── package.json
├── report-0507.png
└── spec
├── chatroomSpec.js
├── conversationSpec.js
├── groupSpec.js
├── helpers
└── data.js
├── message
├── chatroomSpec.js
├── discussionSpec.js
├── groupSpec.js
├── historySpec.js
├── privateSpec.js
└── systemSpec.js
├── pushSpec.js
├── sensitiveSpec.js
├── support
└── jasmine.json
└── userSpec.js
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/*
2 | coverage/*
3 | example/*
4 | docs/*
5 | spec/*
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "env": {
3 | "browser": true,
4 | "commonjs": true,
5 | "es6": true
6 | },
7 | "extends": "eslint:recommended",
8 | "parserOptions": {
9 | "ecmaVersion": 2015,
10 | "sourceType": "module"
11 | },
12 | "rules": {
13 | "quotes": [2, "single"],
14 | "no-alert": "error",
15 | "no-irregular-whitespace": "error",
16 | "eqeqeq": "warn",
17 | "key-spacing": "error",
18 | "no-dupe-keys": "error",
19 | "no-mixed-spaces-and-tabs": "error",
20 | "no-multiple-empty-lines": ["error", { "max": 1 }],
21 | "no-multi-spaces": ["error", { "ignoreEOLComments": true }],
22 | "no-control-regex": "warn",
23 | "no-use-before-define": "error",
24 | "no-restricted-globals": "warn",
25 | "indent": ["error", 2],
26 | "max-nested-callbacks": ["error", { "max": 3 }],
27 | "no-underscore-dangle": ["warn", { "allow": ["_msg"] }]
28 | }
29 | };
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | coverage
3 | .idea
4 | .DS_Store
5 | **/_book
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 融云 Rong Cloud
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### Server SDK
2 |
3 | _单元测试覆盖率:_
4 |
5 | 
6 |
7 | **文档迁移至**: http://www.rongcloud.cn/docs/server_sdk_api/
8 |
9 | [SDK 功能清单](./function-list.md)
10 |
11 | #### 初始化
12 |
13 | 1、生产环境 Node.js 支持最低版本为 [4.0+](http://nodejs.cn/download/),开发环境要求 Node.js 最低版本为 [8.0+](http://nodejs.cn/download/)
14 |
15 | 2、安装 `rongcloud-sdk`
16 |
17 | ```
18 | npm install rongcloud-sdk
19 | ```
20 |
21 | #### 使用
22 |
23 | 请前往 [开发者后台](https://developer.rongcloud.cn) 创建应用 -> 获取 Appkey、Secret
24 |
25 | 以注册用户为例
26 |
27 | **Promise 方式**
28 |
29 | ```js
30 | //替换成您自己的 Appkey
31 | var appkey = '8luwapucoil';
32 | // 替换成您自己的 Secret
33 | var secret = 'y0iyjl4h3LWz';
34 |
35 | var RongSDK = require('rongcloud-sdk')({
36 | appkey: appkey,
37 | secret: secret
38 | });
39 |
40 | // API 文档: http://www.rongcloud.cn/docs/server/sdk/user/user.html#register
41 | var User = RongSDK.User;
42 | var user = {
43 | id: 'ujadk90ha',
44 | name: 'Maritn',
45 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
46 | };
47 | User.register(user).then(result => {
48 | console.log(result);
49 | }, error => {
50 | console.log(error);
51 | });
52 | ```
53 |
54 | **Co 方式**
55 | ```js
56 | //替换成您自己的 Appkey
57 | var appkey = '8luwapucoil';
58 | // 替换成您自己的 Secret
59 | var secret = 'y0iyjl4h3LWz';
60 |
61 | var RongSDK = require('rongcloud-sdk')({
62 | appkey: appkey,
63 | secret: secret
64 | });
65 | var co = require('co');
66 |
67 | // API 文档: http://www.rongcloud.cn/docs/server/sdk/user/user.html#register
68 | var User = RongSDK.User;
69 | co(function* (){
70 | var user = {
71 | id: 'ujadk90ha',
72 | name: 'Maritn',
73 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
74 | };
75 | var result = yield User.register(user)
76 | console.log(result);
77 | }).catch(error => {
78 | console.log(error);
79 | });
80 | ```
81 |
82 | #### 文档
83 |
84 | [API 文档](https://www.rongcloud.cn/docs/server_sdk_api/)
85 |
86 | #### 示例
87 |
88 | **[用户模块示例](./example/promise/user)**
89 |
90 | **[消息模块示例](./example/promise/message)**
91 |
92 | **[群组模块示例](./example/promise/group)**
93 |
94 | **[聊天室模块示例](./example/promise/chatroom)**
95 |
96 | **[会话模块示例](./example/promise/conversation.js)**
97 |
98 | **[敏感词模块示例](./example/promise/sensitive.js)**
99 |
100 | **[远程推送](./example/promise/push.js)**
101 |
102 | #### 单元测试
103 |
104 | 1、下载或克隆 `server-sdk-nodejs`
105 |
106 | 2、进入项目 `cd server-sdk-nodejs`
107 |
108 | 3、安装依赖 `npm install`
109 |
110 | 4、运行单元测试 `npm test`
111 |
112 | #### 声明
113 |
114 | 3.0.0 版本 SDK API 不再向老版本兼容,老版本 SDK 可用但不再维护
115 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | #### 使用步骤
2 |
3 | ##### 1、注册开发者,请移步 [开发者后台](https://developer.rongcloud.cn)
4 |
5 | ##### 2、创建应用
6 |
7 | ##### 3、获取 Appkey 、 Secret
8 |
9 | #### Server SDK{#server-sdk}
10 |
11 | 各平台 SDK **源码**、**示例** 请移步: [Java](https://github.com/rongcloud/server-sdk-java)、 [Node.js](https://github.com/rongcloud/server-sdk-nodejs)
12 |
13 | #### SDK 使用指南
14 |
15 |
16 |
17 | >图解
18 |
19 | 蓝色框表示应用服务器 (App Server),用来处理业务数据,比如用户信息、群组关系等
20 |
21 | App Server 会使用到融云 Server SDK: [Java](https://github.com/rongcloud/server-sdk-java)、 [Node.js](https://github.com/rongcloud/server-sdk-nodejs)
22 |
23 | 蓝色为应用(App),客户端发送消息使用,会用到各端 SDK: [iOS](http://www.rongcloud.cn/docs/ios.html#integration)、[Android](http://www.rongcloud.cn/docs/android.html#integration)、[Web](http://www.rongcloud.cn/docs/web.html#sdk)、[Desktop](http://www.rongcloud.cn/docs/desktop.html)
24 |
25 | 绿色框表示融云服务器 (RongCloud Server) ,是消息通道,调用各端 SDK 发送消息即可
26 |
--------------------------------------------------------------------------------
/docs/api.md:
--------------------------------------------------------------------------------
1 | ### 文档导航
2 |
3 | 点击模块名称可快速跳转
4 |
5 | ```{mermaid}
6 | graph TB
7 | subgraph 聊天室模块
8 | 聊天室
9 | 聊天室-全局禁言
10 | 聊天室-成员禁言
11 | 聊天室-封禁
12 | 聊天室-消息降级
13 | 聊天室-消息分发
14 | 聊天室-保活
15 | 聊天室-白名单
16 | end
17 | ```
18 |
19 | ```{mermaid}
20 | graph TB
21 | subgraph 用户模块
22 | 用户
23 | 用户-黑名单
24 | 用户-封禁
25 | 用户-在线状态
26 | end
27 |
28 | subgraph 群组模块
29 | 群组
30 | 群组-禁言
31 | end
32 |
33 | subgraph 消息模块
34 | 消息
35 | 历史消息
36 | end
37 |
38 | subgraph 会话模块
39 | 会话
40 | end
41 |
42 | subgraph 敏感词模块
43 | 敏感词
44 | end
45 |
46 | subgraph 错误码模块
47 | 错误码
48 | end
49 |
50 | click 用户 "./user/" "前往用户模块"
51 | ```
52 |
--------------------------------------------------------------------------------
/docs/book.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "prism", "-highlight", "codetabs", "custom-html","expandable-chapters",
4 | "-sharing", "-fontsettings"
5 | ],
6 | "pluginsConfig": {
7 | "customHTML": {
8 | "js": "js/banner.js"
9 | },
10 | "prism": {
11 | "css": [
12 | "prismjs/themes/prism-okaidia.css"
13 | ]
14 | }
15 | },
16 | "styles": {
17 | "website": "style/website.css"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/docs/chatroom/ban.md:
--------------------------------------------------------------------------------
1 | ## 聊天室全局禁言模块
2 |
3 | 禁止用户在应用内所有聊天室中发言,可将此用户添加到聊天室全局禁言中,被禁言用户可以接收聊天室中聊天信息,但不能发送消息
4 |
5 | 多次调用,以最后一次为准
6 |
7 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
8 |
9 | ### Ban.add(chatroom){#add}
10 |
11 | 添加聊天室全局禁言
12 |
13 | `chatroom` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :----------|:-------- |:----- |:------------------------------|:-------- |
17 | | members | array | 是 | 成员列表,最多不超过 20 个 |3.0.0 |
18 | | minute | number | 是 | 禁言时长,范围: 1 - 1 \* 30 \* 24 \* 60 分钟 | 3.0.0|
19 |
20 | `members` 说明:
21 |
22 | | 参数 | 类型 | 说明 |最低版本 |
23 | | :----------|:-------- |:------------------------------|:-------- |
24 | | id | string | 添加禁言用户 Id。 | 3.0.0 |
25 |
26 | ##### 请求成功
27 |
28 | ```json
29 | {
30 | "code": 200
31 | }
32 | ```
33 |
34 | ### Ban.remove(chatroom){#remove}
35 |
36 | 解除聊天室全局禁言
37 |
38 | `chatroom` 参数的**属性说明**:
39 |
40 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
41 | | :----------|:-------- |:----- |:------------------------------|:-------- |
42 | | members | array | 是 | 解除禁言列表 | 3.0.0 |
43 |
44 | `members` 说明:
45 |
46 | | 参数 | 类型 | 说明 |最低版本 |
47 | | :----------|:-------- |:------------------------------|:-------- |
48 | | id | string | 解除禁言用户 Id。 | 3.0.0 |
49 |
50 | ##### 请求成功
51 |
52 | ```json
53 | {
54 | "code": 200
55 | }
56 | ```
57 | ### Ban.getList(){#getList}
58 |
59 | 获取聊天室全局禁言列表
60 |
61 | ##### 请求成功
62 |
63 | ```json
64 | {
65 | "code": 200,
66 | "members": [{
67 | "id": "2582",
68 | "time": "2015-09-25 16:12:38"
69 | }]
70 | }
71 | ```
72 | | 参数 | 类型 | 说明
73 | | :----------|:-------- |:------------------------------
74 | | id | string | 被禁言用户 Id。
75 | | time | string | 解禁时间
76 |
--------------------------------------------------------------------------------
/docs/chatroom/block.md:
--------------------------------------------------------------------------------
1 | ## 聊天室封禁模块
2 |
3 | 将用户踢出聊天室,并在设置`禁言的时间` 范围内禁止加入指定聊天室,多次调用,以最后一次为准
4 |
5 | ### Block.add(chatroom){#add}
6 |
7 | 添加封禁
8 |
9 | `chatroom` 参数的**属性说明**:
10 |
11 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
12 | | :----------|:-------- |:----- |:------------------------------|:-------- |
13 | | id | string | 是 | 聊天室 Id | 3.0.0 |
14 | | members | array | 是 | 封禁列表 | 3.0.0 |
15 | | minute | number | 是 | 封禁时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟 | 3.0.0 |
16 |
17 | `members` 说明:
18 |
19 | | 参数 | 类型 | 说明 |最低版本 |
20 | | :----------|:-------- |:------------------------------|:-------- |
21 | | id | string | 添加封禁用户 Id。 | 3.0.0 |
22 |
23 | ##### 请求成功
24 |
25 | ```json
26 | {
27 | "code": 200
28 | }
29 | ```
30 |
31 | ### Block.remove(chatroom){#remove}
32 |
33 | 解除封禁
34 |
35 | `chatroom` 参数的**属性说明**:
36 |
37 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
38 | | :----------|:-------- |:----- |:------------------------------|:-------- |
39 | | id | string | 是 | 聊天室 Id | 3.0.0 |
40 | | members | array | 是 | 解除封禁列表 | 3.0.0|
41 |
42 | `members` 说明:
43 |
44 | | 参数 | 类型 | 说明 |最低版本 |
45 | | :----------|:-------- |:------------------------------|:-------- |
46 | | id | string | 解除封禁用户 Id。 | 3.0.0 |
47 |
48 | ##### 请求成功
49 |
50 | ```json
51 | {
52 | "code": 200
53 | }
54 | ```
55 | ### Block.getList(chatroom){#getList}
56 |
57 | 查询被封禁成员列表
58 |
59 | `chatroom` 参数的**属性说明**:
60 |
61 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
62 | | :----------|:-------- |:----- |:------------------------------|:-------- |
63 | | id | string | 是 | 聊天室 Id | 3.0.0 |
64 |
65 | ##### 请求成功
66 |
67 | ```json
68 | {
69 | "code": 200,
70 | "members": [{
71 | "id": "2582",
72 | "time": "2015-09-25 16:12:38"
73 | }]
74 | }
75 | ```
76 |
77 | `members` 说明:
78 |
79 | | 参数 | 类型 | 说明 |最低版本 |
80 | | :----------|:-------- |:------------------------------|:-------- |
81 | | id | string | 被封禁用户 Id。 | 3.0.0 |
82 | | time | string | 解禁时间 | 3.0.0 |
83 |
--------------------------------------------------------------------------------
/docs/chatroom/chatroom.md:
--------------------------------------------------------------------------------
1 | ## 聊天室模块
2 |
3 | ### Chatroom.create(chatroom){#Create}
4 |
5 | 创建聊天室
6 |
7 | 聊天室使用步骤:
8 |
9 | 1、App Server 创建聊天室
10 |
11 | 2、客户端调用各端 SDK 加入聊天室
12 |
13 | 3、收发消息
14 |
15 | `chatrooms` 参数的**属性说明**:
16 |
17 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
18 | | :----------|:-------- |:----- |:------------------------------|:-------- |
19 | | id | string | 是 | 聊天室 Id | 3.0.0 |
20 | | name | string | 是 | 聊天室名称 | 3.0.0 |
21 |
22 | ##### 请求成功
23 |
24 | ```json
25 | {
26 | "code": 200
27 | }
28 | ```
29 |
30 | ### Chatroom.destroy(chatroom){#destroy}
31 |
32 | 销毁聊天室,禁言、封禁关系不销毁
33 |
34 | `chatroom` 参数的**属性说明**:
35 |
36 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
37 | | :----------|:-------- |:----- |:------------------------------|:-------- |
38 | | id | string | 是 | 聊天室 Id | 3.0.0 |
39 |
40 | ##### 请求成功
41 |
42 | ```json
43 | {
44 | "code": 200
45 | }
46 | ```
47 |
48 | ### Chatroom.get(chatroom){#get}
49 |
50 | 获取聊天室信息,返回按时间排序后的最多 500 个成员信息
51 |
52 | `chatroom` 参数的**属性说明**:
53 |
54 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
55 | | :----------|:-------- |:----- |:------------------------------|:-------- |
56 | | id | string | 是 | 聊天室 Id 列表 | 3.0.0 |
57 | | count | number | 是 | 聊天室成员信息数,最多返回 500 个成员 | 3.0.0 |
58 | | order | number | 是 | 查询聊天室成员顺序, 1: 加入时间正序 2: 加入时间倒序 | 3.0.0 |
59 |
60 | ##### 请求成功
61 |
62 | ```json
63 | {
64 | "code": 200,
65 | "total": 100,
66 | "members": [{
67 | "id": "member1",
68 | "time": "2018-03-08 16:38:26"
69 | },
70 | {
71 | "id": "member2",
72 | "time": "2018-03-08 16:38:26"
73 | }]
74 | }
75 | ```
76 |
77 | | 参数 | 类型 | 说明
78 | | :----------|:-------- |:------------------------------
79 | | id | string | 用户 Id
80 | | total | string | 当前聊天室中用户数
81 | | time | string | 加入聊天室时间
82 |
83 | ### Chatroom.isExist(chatroom){#isExist}
84 |
85 | 检查用户是否在聊天室
86 |
87 | | 参数 | 类型 | 说明 |最低版本 |
88 | | :----------|:-------- |:------------------------------|:-------- |
89 | | id | string | 聊天室 Id | 3.0.0 |
90 | | members | array | 每次最多 1000 个成员 | 3.0.0 |
91 |
92 | ##### 请求成功
93 |
94 | ```json
95 | {
96 | "code": 200,
97 | "members": [{
98 | "id": "y41z2IXBW",
99 | "isInChrm": 0
100 | }, {
101 | "id": "niCtlxnas",
102 | "isInChrm": 1
103 | }]
104 | }
105 | ```
106 |
107 | `members` 说明:
108 |
109 | | 参数 | 类型 | 说明
110 | | :----------|:-------- |:------------------------------
111 | | id | string | 成员 Id
112 | | isInChrm | number | 是否在聊天室中 1: 在 0: 不在
113 |
--------------------------------------------------------------------------------
/docs/chatroom/demotion.md:
--------------------------------------------------------------------------------
1 | ## 聊天室降级{#demotion}
2 |
3 | 聊天室消息级别分两种: `High Level`、`Low Level`
4 |
5 | 默认全部消息类型为 `High Level` 的消息,当服务器负载高时 `Low Level` 的消息优先被丢弃,让出资源给 `High Level` 的消息
6 |
7 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
8 |
9 | ### Demotion.add(message){#add}
10 |
11 | 添加应用内聊天室降级消息
12 |
13 | `message` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :-------------|:-------- |:----- |:---------------------------------------------------|:-------- |
17 | | objectNames | string | 是 | [消息类型](../GLOSSARY.md#message)列表,最多 20 个 | 3.0.0 |
18 |
19 | `objectNames` 说明:
20 |
21 | | 参数 | 类型 | 说明 |最低版本 |
22 | | :----------|:-------- |:------------------------------|:-------- |
23 | | msgs | string | 消息类型 | 3.0.0|
24 |
25 | ##### 请求成功
26 |
27 | ```json
28 | {
29 | "code": 200
30 | }
31 | ```
32 |
33 | ### Demotion.remove(message){#remove}
34 |
35 | 移除应用内聊天室降级消息
36 |
37 | `message` 参数的**属性说明**:
38 |
39 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
40 | | :--------------|:-------- |:----- |:--------------------------------------|:-------- |
41 | | objectNames | string | 是 | [消息类型](../GLOSSARY.md#message)列表 | 3.0.0 |
42 |
43 | `objectNames` 说明:
44 |
45 | | 参数 | 类型 | 说明 |最低版本 |
46 | | :----------|:-------- |:------------------------------|:-------- |
47 | | msgs | string | 消息类型 | 3.0.0|
48 |
49 | ##### 请求成功
50 |
51 | ```json
52 | {
53 | "code": 200
54 | }
55 | ```
56 |
57 | ### Demotion.getList(){#getList}
58 |
59 | 获取应用内聊天室降级消息
60 |
61 | ##### 请求成功
62 |
63 | ```json
64 | {
65 | "code": 200,
66 | "objectNames":[
67 | "RC:ImgMsg",
68 | "RC:ImgTextMsg"
69 | ]
70 | }
71 | ```
72 |
73 | | 参数 | 类型 | 说明
74 | | :-------------|:-------- |:------------------------------
75 | | objectNames | string | 消息类型数组
76 |
--------------------------------------------------------------------------------
/docs/chatroom/distribute.md:
--------------------------------------------------------------------------------
1 | ## 聊天室消息分发模块
2 |
3 | 控制聊天室消息分发,停止后,融云服务器将不会同步消息到指定聊天室
4 |
5 | ### Distribute.stop(chatroom){#stop}
6 |
7 | 停止聊天室消息分发
8 |
9 | `chatroom` 参数的**属性说明**:
10 |
11 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
12 | | :----------|:-------- |:----- |:------------------------------|:-------- |
13 | | id | string | 是 | 聊天室 Id | 3.0.0 |
14 |
15 | ##### 请求成功
16 |
17 | ```json
18 | {
19 | "code": 200
20 | }
21 | ```
22 |
23 | ### Distribute.resume(chatroom){#remove}
24 |
25 | 恢复聊天室消息分发
26 |
27 | `chatroom` 参数的**属性说明**:
28 |
29 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
30 | | :----------|:-------- |:----- |:------------------------------|:-------- |
31 | | id | string | 是 | 聊天室 Id | 3.0.0 |
32 |
33 | ##### 请求成功
34 |
35 | ```json
36 | {
37 | "code": 200
38 | }
39 | ```
40 |
--------------------------------------------------------------------------------
/docs/chatroom/gag.md:
--------------------------------------------------------------------------------
1 | ## 聊天成员禁言模块
2 |
3 | ### Gag.add(chatroom){#add}
4 |
5 | 添加聊天室成员禁言,多次调用,以最后一次为准
6 |
7 | `chatroom` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:-------- |
11 | | id | string | 是 | 聊天室 Id | 3.0.0 |
12 | | members | array | 是 | 禁言列表 | 3.0.0 |
13 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟| 3.0.0 |
14 |
15 | `members` 说明:
16 |
17 | | 参数 | 类型 | 说明 |最低版本 |
18 | | :----------|:-------- |:------------------------------|:-------- |
19 | | id | string | 添加禁言用户 Id。 | 3.0.0 |
20 |
21 | ##### 请求成功
22 |
23 | ```json
24 | {
25 | "code": 200
26 | }
27 | ```
28 |
29 | ### Gag.remove(chatroom){#remove}
30 |
31 | 解除聊天室成员禁言
32 |
33 | `chatroom` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:-------- |
37 | | id | string | 是 | 聊天室 Id | 3.0.0 |
38 | | members | array | 是 | 解除禁言列表 | 3.0.0 |
39 |
40 | `members` 说明:
41 |
42 | | 参数 | 类型 | 说明 |最低版本 |
43 | | :----------|:-------- |:------------------------------|:-------- |
44 | | id | string | 解除禁言用户 Id。 | 3.0.0 |
45 |
46 | ##### 请求成功
47 |
48 | ```json
49 | {
50 | "code": 200
51 | }
52 | ```
53 | ### Gag.getList(chatroom){#getList}
54 |
55 | 获取聊天室成员禁言列表
56 |
57 | `chatroom` 参数的**属性说明**:
58 |
59 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
60 | | :----------|:-------- |:----- |:------------------------------|:-------- |
61 | | id | string | 是 | 聊天室 Id | 3.0.0 |
62 |
63 | ##### 请求成功
64 |
65 | ```json
66 | {
67 | "code": 200,
68 | "members": [{
69 | "time": "2015-09-25 16:12:38",
70 | "id": "2582"
71 | }]
72 | }
73 | ```
74 |
75 | `members` 说明:
76 |
77 | | 参数 | 类型 | 说明 |最低版本 |
78 | | :----------|:-------- |:------------------------------|:-------- |
79 | | id | string | 被禁言用户 Id | 3.0.0|
80 | | time | string | 解禁时间 | 3.0.0 |
81 |
--------------------------------------------------------------------------------
/docs/chatroom/keepalive.md:
--------------------------------------------------------------------------------
1 | ## 聊天室保活模块
2 |
3 | 聊天室中 1 小时无人说话,同时没有人加入聊天室时,融云服务端会自动把聊天室内所有成员`踢出`并 `销毁` 聊天室
4 |
5 | 如果不希望聊天室自动销毁,可用此接口将指定聊天室做保活处理,聊天室不会自动销毁
6 |
7 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
8 |
9 | ### KeepAlive.add(chatroom){#add}
10 |
11 | 添加保活聊天室
12 |
13 | `chatroom` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :----------|:-------- |:----- |:------------------------------|:-------- |
17 | | id | string | 是 | 聊天室 Id | 3.0.0 |
18 |
19 | ##### 请求成功
20 |
21 | ```json
22 | {
23 | "code": 200
24 | }
25 | ```
26 |
27 | ### KeepAlive.remove(chatroom){#remove}
28 |
29 | 删除保活聊天室
30 |
31 | `chatroom` 参数的**属性说明**:
32 |
33 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
34 | | :----------|:-------- |:----- |:------------------------------|:-------- |
35 | | id | string | 是 | 聊天室 Id | 3.0.0 |
36 |
37 | ##### 请求成功
38 |
39 | ```json
40 | {
41 | "code": 200
42 | }
43 | ```
44 | ### KeepAlive.getList(){#getList}
45 |
46 | 获取保活聊天室
47 |
48 | ##### 请求成功
49 |
50 | ```json
51 | {
52 | "code": 200,
53 | "chatrooms": ["hkuytd9o1", "lgekdk81"]
54 | }
55 | ```
56 |
57 | | 参数 | 类型 | 说明 |最低版本 |
58 | | :----------|:-------- |:------------------------------|:-------- |
59 | | chatrooms| array | 保活聊天室列表 | 3.0.0 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/docs/chatroom/mute-members.md:
--------------------------------------------------------------------------------
1 | ## 聊天成员禁言模块
2 |
3 | ### MuteMembers.add(chatroom){#add}
4 |
5 | 添加聊天室成员禁言,多次调用,以最后一次为准
6 |
7 | `chatroom` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:-------- |
11 | | id | string | 是 | 聊天室 Id | 3.0.0 |
12 | | members | array | 是 | 禁言列表 | 3.0.0 |
13 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟| 3.0.0 |
14 |
15 | `members` 说明:
16 |
17 | | 参数 | 类型 | 说明 |最低版本 |
18 | | :----------|:-------- |:------------------------------|:-------- |
19 | | id | string | 添加禁言用户 Id。 | 3.0.0 |
20 |
21 | ##### 请求成功
22 |
23 | ```json
24 | {
25 | "code": 200
26 | }
27 | ```
28 |
29 | ### MuteMembers.remove(chatroom){#remove}
30 |
31 | 解除聊天室成员禁言
32 |
33 | `chatroom` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:-------- |
37 | | id | string | 是 | 聊天室 Id | 3.0.0 |
38 | | members | array | 是 | 解除禁言列表 | 3.0.0 |
39 |
40 | `members` 说明:
41 |
42 | | 参数 | 类型 | 说明 |最低版本 |
43 | | :----------|:-------- |:------------------------------|:-------- |
44 | | id | string | 解除禁言用户 Id。 | 3.0.0 |
45 |
46 | ##### 请求成功
47 |
48 | ```json
49 | {
50 | "code": 200
51 | }
52 | ```
53 | ### MuteMembers.getList(chatroom){#getList}
54 |
55 | 获取聊天室成员禁言列表
56 |
57 | `chatroom` 参数的**属性说明**:
58 |
59 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
60 | | :----------|:-------- |:----- |:------------------------------|:-------- |
61 | | id | string | 是 | 聊天室 Id | 3.0.0 |
62 |
63 | ##### 请求成功
64 |
65 | ```json
66 | {
67 | "code": 200,
68 | "members": [{
69 | "time": "2015-09-25 16:12:38",
70 | "id": "2582"
71 | }]
72 | }
73 | ```
74 |
75 | `members` 说明:
76 |
77 | | 参数 | 类型 | 说明 |最低版本 |
78 | | :----------|:-------- |:------------------------------|:-------- |
79 | | id | string | 被禁言用户 Id | 3.0.0|
80 | | time | string | 解禁时间 | 3.0.0 |
81 |
--------------------------------------------------------------------------------
/docs/chatroom/whitelist/message.md:
--------------------------------------------------------------------------------
1 | ## 聊天室消息白名单模块
2 |
3 | 设置消息白名单后,服务器负载高时聊天室中此类型消息不会被丢弃,设置 2 后小时生效
4 |
5 | 设置白名单后,消息优先级高于 [High Level](../demotion.md#demotion) 消息
6 |
7 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
8 |
9 | ### Whitelist.add(message){#add}
10 |
11 | 添加聊天室消息白名单
12 |
13 | `message` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :----------|:-------- |:----- |:------------------------------|:-------- |
17 | | objectNames | array | 是 | [消息类型](../../GLOSSARY.md#message)列表 | 3.0.0 |
18 |
19 | `objectNames` 说明:
20 |
21 | | 参数 | 类型 | 说明 |最低版本 |
22 | | :----------|:-------- |:------------------------------|:-------- |
23 | | msgs | string | 消息类型 | 3.0.0|
24 |
25 | ##### 请求成功
26 |
27 | ```json
28 | {
29 | "code": 200
30 | }
31 | ```
32 |
33 | ### Whitelist.remove(message){#remove}
34 |
35 | 删除聊天室消息白名单
36 |
37 | `message` 参数的**属性说明**:
38 |
39 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
40 | | :----------|:-------- |:----- |:------------------------------|:-------- |
41 | | objectNames | string | 是 | [消息类型](../../GLOSSARY.md#message)列表 | 3.0.0 |
42 |
43 | `objectNames` 说明:
44 |
45 | | 参数 | 类型 | 说明 |最低版本 |
46 | | :----------|:-------- |:------------------------------|:-------- |
47 | | msgs | string | 消息类型 | 3.0.0|
48 |
49 | ##### 请求成功
50 |
51 | ```json
52 | {
53 | "code": 200
54 | }
55 | ```
56 | ### Whitelist.getList(){#getList}
57 |
58 | 获取聊天室消息白名单
59 |
60 | ##### 请求成功
61 |
62 | ```json
63 | {
64 | "code": 200,
65 | "objectNames":["RC:ImgMsg","RC:ImgTextMsg","RC:VcMsg"]
66 | }
67 | ```
68 |
69 | | 参数 | 类型 | 说明 |最低版本 |
70 | | :----------|:-------- |:------------------------------|:-------- |
71 | | objectNames | string | 白名单消息类型列表 | 3.0.0 |
72 |
--------------------------------------------------------------------------------
/docs/chatroom/whitelist/user.md:
--------------------------------------------------------------------------------
1 | ## 聊天室用户白名单模块
2 |
3 | 默认聊天室成员离线 30 秒后或离线后错过 30 条消息,会被踢出聊天室
4 |
5 | 将用户加入白名单后,用户将处于被保护状态,在以上情况下将不会被踢出聊天室
6 |
7 | 白名单中用户在当前聊天室中发送消息的级别将高于 `High Level`
8 |
9 | 聊天室销毁后,对应白名单也自动销毁
10 |
11 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
12 |
13 | ### Whitelist.add(chatroom){#add}
14 |
15 | 将用户添加到白名单中
16 |
17 | `chatroom` 参数的**属性说明**:
18 |
19 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
20 | | :----------|:-------- |:----- |:------------------------------|:-------- |
21 | | id | string | 是 | 聊天室 Id |3.0.0|
22 | | members | string | 是 | 白名单列表,最多不超过 5 个| 3.0.0|
23 |
24 | `members` 说明:
25 |
26 | | 参数 | 类型 | 说明 |最低版本 |
27 | | :----------|:-------- |:------------------------------|:-------- |
28 | | id | string | 用户 Id。 | 3.0.0 |
29 |
30 | ##### 请求成功
31 |
32 | ```json
33 | {
34 | "code": 200
35 | }
36 | ```
37 |
38 | ### Whitelist.remove(chatroom){#remove}
39 |
40 | 将用户从白名单中移除
41 |
42 | `chatroom` 参数的**属性说明**:
43 |
44 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
45 | | :----------|:-------- |:----- |:------------------------------|:-------- |
46 | | id | string | 是 | 聊天室 Id |3.0.0|
47 | | members | string | 是 | 移除白名单 Id 列表 | 3.0.0|
48 |
49 | `members` 说明:
50 |
51 | | 参数 | 类型 | 说明 |最低版本 |
52 | | :----------|:-------- |:------------------------------|:-------- |
53 | | id | string | 用户 Id。 | 3.0.0 |
54 |
55 | ##### 请求成功
56 |
57 | ```json
58 | {
59 | "code": 200
60 | }
61 | ```
62 | ### Whitelist.getList(){#getList}
63 |
64 | 获取聊天室用户白名单
65 |
66 | ##### 请求成功
67 |
68 | ```json
69 | {
70 | "code": 200,
71 | "members": [{
72 | "id": "mkij091"
73 | }]
74 | }
75 | ```
76 |
77 | | 参数 | 类型 | 说明 |最低版本 |
78 | | :----------|:-------- |:------------------------------|:-------- |
79 | | members | array | 白名单列表 |3.0.0 |
80 |
81 | `members` 说明:
82 |
83 | | 参数 | 类型 | 说明 |最低版本 |
84 | | :----------|:-------- |:------------------------------|:-------- |
85 | | id | string | 用户 Id。 | 3.0.0 |
86 |
--------------------------------------------------------------------------------
/docs/conversation/conversation.md:
--------------------------------------------------------------------------------
1 | ## 会话模块{#conversation}
2 |
3 | 会话类型说明:
4 |
5 | | 类型 | 说明
6 | | :-----------|:--------
7 | | PRIVATE | 单聊
8 | | GROUP | 群聊
9 | | DISCUSSION| 讨论组
10 | | SYSTEM | 系统会话
11 |
12 | ### Conversation.mute(conversation){#mute}
13 |
14 | 设置用户某个会话屏蔽 Push
15 |
16 | `conversation` 参数的**属性说明**:
17 |
18 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
19 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
20 | | type | string | 是 | 会话类型 `PRIVATE`、`GROUP`、`DISCUSSION`、`SYSTEM`| 3.0.0 |
21 | | userId | string | 是 | 设置用户 Id | 3.0.0 |
22 | | targetId | string | 是 | 需要屏蔽的目标 Id | 3.0.0 |
23 |
24 | ##### 请求成功
25 |
26 | ```json
27 | {
28 | "code": 200
29 | }
30 | ```
31 |
32 | ### Conversation.unmute(conversation){#unmute}
33 |
34 | 设置用户某个会话接收 Push
35 |
36 | `conversation` 参数的**属性说明**:
37 |
38 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
39 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
40 | | type | string | 是 | 会话类型 `PRIVATE`、`GROUP`、`DISCUSSION`、`SYSTEM`| 3.0.0 |
41 | | userId | string | 是 | 设置用户 Id | 3.0.0 |
42 | | targetId | string | 是 | 需要接收 Push 的目标 Id | 3.0.0 |
43 |
44 | ##### 请求成功
45 |
46 | ```json
47 | {
48 | "code": 200
49 | }
50 | ```
51 |
52 | ### Conversation.get(conversation){#get}
53 |
54 | 查询用户某一会话消息免打扰的设置状态。
55 |
56 | `conversation` 参数的**属性说明**:
57 |
58 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
59 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
60 | | type | string | 是 | 会话类型 `PRIVATE`、`GROUP`、`DISCUSSION`、`SYSTEM`| 3.0.0 |
61 | | userId | string | 是 | 设置用户 Id | 3.0.0 |
62 | | targetId | string | 是 | 需要接收 Push 的目标 Id | 3.0.0 |
63 |
64 | ##### 请求成功
65 |
66 | ```json
67 | {
68 | "code": 200,
69 | "isMuted": 0
70 | }
71 | ```
72 |
73 | | 参数 | 类型 | 说明
74 | | :----------|:-------- |:-----
75 | | code | number | 返回码,200 为正常。
76 | | isMuted | number | 消息免打扰设置状态,0 表示为关闭,1 表示为开启。
77 |
--------------------------------------------------------------------------------
/docs/errorcode.md:
--------------------------------------------------------------------------------
1 | #### 错误码
2 |
3 | | 错误码 | 描述
4 | | :-----|:------------
5 | | 1000 | 服务器端内部逻辑错误,请稍后重试
6 | | 1001 | App Key 与 App Secret 不匹配
7 | | 1002 | 参数错误,详细的描述信息会说明
8 | | 1003 | 无 POST 数据,没有 POST 任何数据
9 | | 1004 | 签名错误,请排查 Appkey、Secret 是否正确
10 | | 1005 | 长度超限,详细的描述信息会说明
11 | | 1006 | App 被锁定或删除
12 | | 1007 | 该方法被限制调用,详细的描述信息会说明
13 | | 1008 | 调用频率超限,详细的描述信息会说明
14 | | 1009 | 未开通该服务,请到开发者管理后台开通或提交工单申请
15 | | 1010 | 未使用已开启的图验功能
16 | | 1011 | 剩余条数不足,需要充值
17 | | 1012 | 图片验证码不正确
18 | | 1013 | 短信通道不可用
19 | | 1014 | 短信验证码已验证过,再次验证失效
20 | | 1015 | 删除的数据不存在,要删除的保活聊天室 ID 不存在
21 | | 1016 | 设置的保活聊天室个数超限
22 | | 1017 | 实时音视频 SDK 版本不支持 音视频 SDK 版本不支持,请使用 2.9.0 及之后的实时音视频 SDK
23 | | 1018 | 实时音视频服务未开启,请到开发者管理后台开通实时音视频服务
24 | | 1019 | 敏感词个数超过限制
25 | | 1050 | 内部服务响应超时
26 | | 1501 | 参数类型不正确,请检查参数类型
27 | | 1502 | 数量超限,详细的描述信息会说明
28 | | 1508 | http 请求体过大,应小于 100 k
29 | | 2007 | 开发环境下注册用户上限为 100 个,生产环境下注册用户不超过 100 可免费使用,超过 100 需要开通 IM 商用版
30 |
--------------------------------------------------------------------------------
/docs/group/ban-user.md:
--------------------------------------------------------------------------------
1 | ## 全局群成员禁言服务
2 |
3 | ### Ban.user.add(group){#add}
4 |
5 | 添加全局群组禁言用户,禁止用户在所有群组中发送消息,禁言后只能接收群消息
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | members | array | 是 | 禁言群成员列表 |3.0.0|
12 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟|3.0.0|
13 |
14 | `members` 说明:
15 |
16 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
17 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
18 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
19 |
20 | ##### 请求成功
21 |
22 | ```json
23 | {
24 | "code": 200
25 | }
26 | ```
27 |
28 | ### Ban.user.remove(group){#remove}
29 |
30 | 解除禁言
31 |
32 | `group` 参数的**属性说明**:
33 |
34 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
35 | | :----------|:-------- |:----- |:------------------------------|:----- |
36 | | members | array | 是 | 解除禁言群成员列表 |3.0.0|
37 |
38 | `members` 说明:
39 |
40 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
41 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
42 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
43 |
44 | ##### 请求成功
45 |
46 | ```json
47 | {
48 | "code": 200
49 | }
50 | ```
51 |
52 | ### Ban.user.getList(){#getList}
53 |
54 | 查询全局群禁言成员列表
55 |
56 |
57 | ##### 请求成功
58 |
59 | ```json
60 | {
61 | "code": 200,
62 | "members":[{
63 | "time":"2018-03-08 16:12:38",
64 | "id":"2582"
65 | }]
66 | }
67 | ```
68 |
69 | | 参数 | 类型 | 说明
70 | | :----------|:-------- |:-----
71 | | time | number | 解禁时间
72 | | id | string | 成员Id
73 |
--------------------------------------------------------------------------------
/docs/group/ban.md:
--------------------------------------------------------------------------------
1 | ## 群组禁言服务
2 |
3 | ### Ban.add(group){#add}
4 |
5 | 设置某一群组禁言,禁言后群组中所有成员禁止发送消息,如需要某些用户可以发言时,可将此用户加入到群禁言用户白名单中。
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 群 Id | 3.0.0 |
12 |
13 | ##### 请求成功
14 |
15 | ```json
16 | {
17 | "code": 200
18 | }
19 | ```
20 |
21 | ### Ban.remove(group){#remove}
22 |
23 | 解除群组禁言
24 |
25 | `group` 参数的**属性说明**:
26 |
27 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
28 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
29 | | id | string | 是 | 群 Id | 3.0.0 |
30 |
31 | ##### 请求成功
32 |
33 | ```json
34 | {
35 | "code": 200
36 | }
37 | ```
38 |
39 | ### Ban.getList(){#getList}
40 |
41 | 查询全部群组禁言列表
42 |
43 | ##### 请求成功
44 |
45 | ```json
46 | {
47 | "code": 200,
48 | "groups":[{
49 | "id":"3212"
50 | }]
51 | }
52 | ```
53 |
54 | | 参数 | 类型 | 说明
55 | | :----------|:-------- |:-----
56 | | id | string | 群组 Id
57 |
58 | ### BanStatus.check(group){#check}
59 |
60 | 查询群组是否禁言列表
61 |
62 | `group` 参数的**属性说明**:
63 |
64 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
65 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
66 | | id | string | 是 | 群 Id,最多不超过 20 个 | 3.0.0 |
67 |
68 | ##### 请求成功
69 |
70 | ```json
71 | {
72 | "code": 200,
73 | "groups":[{
74 | "id":"3212",
75 | "status": 1
76 | }]
77 | }
78 | ```
79 |
80 | | 参数 | 类型 | 说明
81 | | :----------|:-------- |:-----
82 | | id | string | 群组 Id
83 | | status | number | 禁言状态,0 表示为未禁言、1 表示为禁言
84 |
--------------------------------------------------------------------------------
/docs/group/gag.md:
--------------------------------------------------------------------------------
1 | ## 群成员禁言服务
2 |
3 | ### Gag.add(group){#add}
4 |
5 | 添加群成员禁言,禁止群成员在群内发送消息,禁言后只能接收消息
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 群组 Id |3.0.0|
12 | | members | array | 是 | 禁言群成员列表 |3.0.0|
13 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟|3.0.0|
14 |
15 | `members` 说明:
16 |
17 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
18 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
19 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
20 |
21 | ##### 请求成功
22 |
23 | ```json
24 | {
25 | "code": 200
26 | }
27 | ```
28 |
29 | ### Gag.remove(group){#remove}
30 |
31 | 解除禁言
32 |
33 | `group` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:----- |
37 | | id | string | 是 | 群组 Id |3.0.0|
38 | | members | array | 是 | 解除禁言群成员列表 |3.0.0|
39 |
40 | `members` 说明:
41 |
42 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
43 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
44 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
45 |
46 | ##### 请求成功
47 |
48 | ```json
49 | {
50 | "code": 200
51 | }
52 | ```
53 |
54 | ### Gag.getList(group){#getList}
55 |
56 | 查询禁言成员列表
57 |
58 | `group` 参数的**属性说明**:
59 |
60 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
61 | | :----------|:-------- |:----- |:------------------------------|:----- |
62 | | id | string | 是 | 群组 Id |3.0.0|
63 |
64 | ##### 请求成功
65 |
66 | ```json
67 | {
68 | "code": 200,
69 | "members":[{
70 | "time":"2018-03-08 16:12:38",
71 | "id":"2582"
72 | }]
73 | }
74 | ```
75 | | 参数 | 类型 | 说明
76 | | :----------|:-------- |:-----
77 | | time | number | 解禁时间
78 | | id | string | 成员Id
79 |
--------------------------------------------------------------------------------
/docs/group/mute-all-members.md:
--------------------------------------------------------------------------------
1 | ## 群组整体禁言服务
2 |
3 | ### MuteAllMembers.add(group){#add}
4 |
5 | 设置某一群组禁言,禁言后群组中所有成员禁止发送消息,如需要某些用户可以发言时,可将此用户加入到群禁言用户白名单中。
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
11 | | members | array | 是 | 群 Id 列表 | 3.0.0 |
12 |
13 | `members` 说明:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
17 | | id | string | 是 | 群 Id | 3.0.0 |
18 |
19 | ##### 请求成功
20 |
21 | ```json
22 | {
23 | "code": 200
24 | }
25 | ```
26 |
27 | ### MuteAllMembers.remove(group){#remove}
28 |
29 | 解除群组禁言
30 |
31 | `group` 参数的**属性说明**:
32 |
33 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
34 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
35 | | members | array | 是 | 群 Id 列表 | 3.0.0 |
36 |
37 | `members` 说明:
38 |
39 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
40 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
41 | | id | string | 是 | 群 Id | 3.0.0 |
42 |
43 | ##### 请求成功
44 |
45 | ```json
46 | {
47 | "code": 200
48 | }
49 | ```
50 |
51 | ### MuteAllMembers.getList(){#getList}
52 |
53 | 查询全部群组禁言列表
54 |
55 | ##### 请求成功
56 |
57 | ```json
58 | {
59 | "code": 200,
60 | "groups":[
61 | "3212"
62 | ]
63 | }
64 | ```
65 |
66 | | 参数 | 类型 | 说明
67 | | :----------|:-------- |:-----
68 | | id | string | 群组 Id
69 |
70 | ### MuteStatus.check(group){#check}
71 |
72 | 查询群组是否禁言列表
73 |
74 | `group` 参数的**属性说明**:
75 |
76 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
77 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
78 | | members | array | 是 | 群 Id 列表 | 3.0.0 |
79 |
80 | `members` 说明:
81 |
82 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
83 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
84 | | id | string | 是 | 群 Id | 3.0.0 |
85 |
86 | ##### 请求成功
87 |
88 | ```json
89 | {
90 | "code": 200,
91 | "groups":[{
92 | "id":"3212",
93 | "status": 1
94 | }]
95 | }
96 | ```
97 |
98 | | 参数 | 类型 | 说明
99 | | :----------|:-------- |:-----
100 | | id | string | 群组 Id
101 | | status | number | 禁言状态,0 表示为未禁言、1 表示为禁言
102 |
--------------------------------------------------------------------------------
/docs/group/mute-members.md:
--------------------------------------------------------------------------------
1 | ## 群成员禁言服务
2 |
3 | ### MuteMembers.add(group){#add}
4 |
5 | 添加群成员禁言,禁止群成员在群内发送消息,禁言后只能接收消息
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 群组 Id |3.0.0|
12 | | members | array | 是 | 禁言群成员列表 |3.0.0|
13 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟|3.0.0|
14 |
15 | `members` 说明:
16 |
17 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
18 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
19 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
20 |
21 | ##### 请求成功
22 |
23 | ```json
24 | {
25 | "code": 200
26 | }
27 | ```
28 |
29 | ### MuteMembers.remove(group){#remove}
30 |
31 | 解除禁言
32 |
33 | `group` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:----- |
37 | | id | string | 是 | 群组 Id |3.0.0|
38 | | members | array | 是 | 解除禁言群成员列表 |3.0.0|
39 |
40 | `members` 说明:
41 |
42 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
43 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
44 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
45 |
46 | ##### 请求成功
47 |
48 | ```json
49 | {
50 | "code": 200
51 | }
52 | ```
53 |
54 | ### MuteMembers.getList(group){#getList}
55 |
56 | 查询禁言成员列表
57 |
58 | `group` 参数的**属性说明**:
59 |
60 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
61 | | :----------|:-------- |:----- |:------------------------------|:----- |
62 | | id | string | 是 | 群组 Id |3.0.0|
63 |
64 | ##### 请求成功
65 |
66 | ```json
67 | {
68 | "code": 200,
69 | "members":[{
70 | "time":"2018-03-08 16:12:38",
71 | "id":"2582"
72 | }]
73 | }
74 | ```
75 | | 参数 | 类型 | 说明
76 | | :----------|:-------- |:-----
77 | | time | number | 解禁时间
78 | | id | string | 成员Id
79 |
--------------------------------------------------------------------------------
/docs/group/whiteList/ban-user.md:
--------------------------------------------------------------------------------
1 | ## 群禁言用户白名单服务
2 |
3 | ### WhiteList.user.add(group){#add}
4 |
5 | 在群组被禁言状态下,如果需要某些用户可以发言时,可将此用户加入到群组禁言用户白名单中。群禁言用户白名单,只有群组被设置为全部禁言时才会生效。
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 群 Id | 3.0.0 |
12 | | members | array | 是 | 白名单成员列表 |3.0.0|
13 |
14 | `members` 说明:
15 |
16 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
17 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
18 | | id | string | 是 | 群成员 Id,每次最多不超过 20 个。 | 3.0.0 |
19 |
20 | ##### 请求成功
21 |
22 | ```json
23 | {
24 | "code": 200
25 | }
26 | ```
27 |
28 | ### WhiteList.user.remove(group){#remove}
29 |
30 | 移除群禁言白名单用户
31 |
32 | `group` 参数的**属性说明**:
33 |
34 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
35 | | :----------|:-------- |:----- |:------------------------------|:----- |
36 | | id | string | 是 | 群 Id | 3.0.0 |
37 | | members | array | 是 | 白名单成员列表 |3.0.0|
38 |
39 | `members` 说明:
40 |
41 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
42 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
43 | | id | string | 是 | 群成员 Id,每次最多不超过 20 个。 | 3.0.0 |
44 |
45 | ##### 请求成功
46 |
47 | ```json
48 | {
49 | "code": 200
50 | }
51 | ```
52 |
53 | ### WhiteList.user.getList(group){#getList}
54 |
55 | 查询群禁言白名单用户列表
56 |
57 | `group` 参数的**属性说明**:
58 |
59 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
60 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
61 | | id | string | 是 | 群 Id | 3.0.0 |
62 |
63 | ##### 请求成功
64 |
65 | ```json
66 | {
67 | "code": 200,
68 | "members":[{
69 | "id":"2582"
70 | }]
71 | }
72 | ```
73 |
74 | | 参数 | 类型 | 说明
75 | | :----------|:-------- |:-----
76 | | id | string | 成员 Id
77 |
--------------------------------------------------------------------------------
/docs/group/whiteList/mute-user.md:
--------------------------------------------------------------------------------
1 | ## 群禁言用户白名单服务
2 |
3 | ### MuteWhiteList.user.add(group){#add}
4 |
5 | 在群组被禁言状态下,如果需要某些用户可以发言时,可将此用户加入到群组禁言用户白名单中。群禁言用户白名单,只有群组被设置为全部禁言时才会生效。
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 群 Id | 3.0.0 |
12 | | members | array | 是 | 白名单成员列表 |3.0.0|
13 |
14 | `members` 说明:
15 |
16 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
17 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
18 | | id | string | 是 | 群成员 Id,每次最多不超过 20 个。 | 3.0.0 |
19 |
20 | ##### 请求成功
21 |
22 | ```json
23 | {
24 | "code": 200
25 | }
26 | ```
27 |
28 | ### MuteWhiteList.user.remove(group){#remove}
29 |
30 | 移除群禁言白名单用户
31 |
32 | `group` 参数的**属性说明**:
33 |
34 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
35 | | :----------|:-------- |:----- |:------------------------------|:----- |
36 | | id | string | 是 | 群 Id | 3.0.0 |
37 | | members | array | 是 | 白名单成员列表 |3.0.0|
38 |
39 | `members` 说明:
40 |
41 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
42 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
43 | | id | string | 是 | 群成员 Id,每次最多不超过 20 个。 | 3.0.0 |
44 |
45 | ##### 请求成功
46 |
47 | ```json
48 | {
49 | "code": 200
50 | }
51 | ```
52 |
53 | ### MuteWhiteList.user.getList(group){#getList}
54 |
55 | 查询群禁言白名单用户列表
56 |
57 | `group` 参数的**属性说明**:
58 |
59 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
60 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
61 | | id | string | 是 | 群 Id | 3.0.0 |
62 |
63 | ##### 请求成功
64 |
65 | ```json
66 | {
67 | "code": 200,
68 | "members":[{
69 | "id":"2582"
70 | }]
71 | }
72 | ```
73 |
74 | | 参数 | 类型 | 说明
75 | | :----------|:-------- |:-----
76 | | id | string | 成员 Id
77 |
--------------------------------------------------------------------------------
/docs/js/banner.js:
--------------------------------------------------------------------------------
1 | module.exports = function($) {
2 | $('.divider').remove();
3 | $('.gitbook-link').remove();
4 | var tpl = `
5 |
6 |
9 |
10 | `;
11 | $('body').append(tpl);
12 | return $.html();
13 | }
--------------------------------------------------------------------------------
/docs/message/chatroom.md:
--------------------------------------------------------------------------------
1 | ## 聊天室模块
2 |
3 | ### Chatroom.send(message){#send}
4 |
5 | `message` 参数的**属性说明**:
6 |
7 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
8 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
9 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
10 | | targetId | string | 是 | 聊天室 Id| 3.0.0 |
11 | | objectName | string | 是 | 消息类型,分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
12 | | content | object | 是 | 消息内容| 3.0.0 |
13 |
14 | ##### 请求成功
15 |
16 | ```json
17 | {
18 | "code": 200
19 | }
20 | ```
21 |
22 | ### Chatroom.broadcast(message){#broadcast}
23 |
24 | 向应用内所有聊天室广播消息,此功能需开通 [专属服务](http://www.rongcloud.cn/deployment#overseas-cloud)
25 |
26 | `message` 参数的**属性说明**:
27 |
28 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
29 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
30 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
31 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
32 | | content | object | 是 | 消息内容| 3.0.0 |
33 |
34 | ```json
35 | {
36 | "code": 200
37 | }
38 | ```
39 |
--------------------------------------------------------------------------------
/docs/message/history.md:
--------------------------------------------------------------------------------
1 | ## 历史消息模块
2 |
3 | ### History.get(message){#get}
4 |
5 | 按小时获取历史消息日志文件 URL,包含小时内应用产生的所有消息,消息日志文件无论是否已下载,3 天后将从融云服务器删除
6 |
7 | 消息日志文件按 `小时` 生成,例如: 获取 10 - 11 点的消息, 11 点后生成
8 |
9 | `message` 参数的**属性说明**:
10 |
11 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
12 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
13 | | date | string | 是 | 精确到小时,例如: `2018030210` 表示获取 2018 年 3 月 2 日 10 点至 11 点产生的数据 | 3.0.0 |
14 |
15 | ##### 请求成功
16 |
17 | ```json
18 | {
19 | "code": 200,
20 | "url": "http://120.92.22.186/9/2018030119/5e398bf3-df16-4e75-9385-7e37c65db649.zip"
21 | }
22 | ```
23 |
24 | ### History.remove(message){#remove}
25 |
26 | 删除历史消息日志文件
27 |
28 | `message` 参数的**属性说明**:
29 |
30 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
31 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
32 | | date | string | 是 | 精确到小时,例如: `2018030210` 表示删除 2018 年 3 月 2 日 10 点至 11 点产生的数据文件 | 3.0.0 |
33 |
34 | ##### 请求成功
35 |
36 | ```json
37 | {
38 | "code": 200
39 | }
40 | ```
--------------------------------------------------------------------------------
/docs/message/private.md:
--------------------------------------------------------------------------------
1 | ## 单聊模块
2 |
3 | ### Private.send(message){#send}
4 |
5 | `message` 参数的**属性说明**:
6 |
7 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
8 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
9 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
10 | | targetId | string | 是 | 接收人 Id| 3.0.0 |
11 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
12 | | content | object | 是 | 消息内容| 3.0.0 |
13 | | pushContent | string | 否 | push 内容, 分为两类 [内置消息 Push](../GLOSSARY.md#inner-message-push) 、[自定义消息 Push](../GLOSSARY.md#custom-message-push) | 3.0.0 |
14 | | pushData | object | 否 | iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData| 3.0.0 |
15 | | count | string | 否 | 针对 iOS 平台,Push 时用来控制未读消息显示数 | 3.0.0 |
16 | | verifyBlacklist | number | 否 | 是否过滤接收用户黑名单列表, 0: 不过滤 、1: 过滤,默认: 0 | 3.0.0 |
17 | | isPersisted | number | 否 | 是否在融云服务器存储, 0: 不存储, 1: 存储, 默认: 1 | 3.0.0 |
18 | | isIncludeSender | string | 否 | 发送者自己是否接收此条消息, 0: 不接收, 1: 接收, 默认: 0| 3.0.0 |
19 |
20 | ##### 请求成功
21 |
22 | ```json
23 | {
24 | "code": 200
25 | }
26 | ```
27 |
28 | ### Private.recall(message){#recall}
29 |
30 | 撤回已发送的单聊消息,撤回时间无限制,只允许撤回用户自己发送的消息
31 |
32 | `message` 参数的**属性说明**:
33 |
34 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
35 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
36 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
37 | | targetId | string | 是 | 接收人 Id| 3.0.0 |
38 | | uId | string | 是 | 消息的唯一标识,各端 SDK 发送消息成功后会返回 uId | 3.0.0 |
39 | | sentTime | object | 是 | 消息的发送时间,各端 SDK 发送消息成功后会返回 sentTime| 3.0.0 |
40 |
41 | ```json
42 | {
43 | "code": 200
44 | }
45 | ```
46 |
47 | ### Private.sendTemplate(message){#sendTemplate}
48 |
49 | 向多个用户发送不同内容消息
50 |
51 | `message` 参数的**属性说明**:
52 |
53 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
54 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
55 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
56 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
57 | | template | object | 是 | 发送消息模版,必须与 objectName 的消息体一致,详细请参考 [示例](../README.md#server-sdk) | 3.0.0 |
58 | | content | object | 是 | 数据内容,包含消息内容和接收者,详细请参考各平台 [SDK](../README.md)| 3.0.0 |
59 |
60 | ```json
61 | {
62 | "code": 200
63 | }
64 | ```
65 |
--------------------------------------------------------------------------------
/docs/message/system.md:
--------------------------------------------------------------------------------
1 | ## 系统消息模块
2 |
3 | ### System.send(message){#send}
4 |
5 | `message` 参数的**属性说明**:
6 |
7 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
8 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
9 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
10 | | targetId | string | 是 | 接收方 Id| 3.0.0 |
11 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
12 | | content | object | 是 | 消息内容| 3.0.0 |
13 | | pushContent | string | 否 | push 内容, 分为两类 [内置消息 Push](../GLOSSARY.md#inner-message-push) 、[自定义消息 Push](../GLOSSARY.md#custom-message-push) | 3.0.0 |
14 | | pushData | object | 否 | iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData| 3.0.0 |
15 | | isPersisted | string | 否 | 是否在融云服务器存储, 0: 不存储, 1: 存储, 默认: 1 | 3.0.0 |
16 |
17 | ##### 请求成功
18 |
19 | ```json
20 | {
21 | "code": 200
22 | }
23 | ```
24 |
25 | ### System.broadcast(message){#broadcast}
26 |
27 | 给应用内所有用户发送消息,每小时最多发 2 次,每天最多发送 3 次
28 |
29 | `message` 参数的**属性说明**:
30 |
31 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
32 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
33 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
34 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
35 | | content | object | 是 | 消息内容| 3.0.0 |
36 |
37 | ```json
38 | {
39 | "code": 200
40 | }
41 | ```
42 |
43 | ### System.sendTemplate(message){#sendTemplate}
44 |
45 | `message` 参数的**属性说明**:
46 |
47 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
48 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
49 | | senderId | string | 是 | 发送人 Id| 3.0.0 |
50 | | objectName | string | 是 | 消息类型, 分为两类: [内置消息类型](../GLOSSARY.md#inner-message) 、[自定义消息类型](../GLOSSARY.md#custom-message) | 3.0.0 |
51 | | template | object | 是 | 发送消息模版,必须与 objectName 的消息体一致,详细请参考 [示例](../README.md#server-sdk) | 3.0.0 |
52 | | content | object | 是 | 数据内容,包含消息内容和接收者,详细请参考各平台 [SDK](../README.md)| 3.0.0 |
53 |
54 | ```json
55 | {
56 | "code": 200
57 | }
58 | ```
59 |
--------------------------------------------------------------------------------
/docs/sensitive/sensitive.md:
--------------------------------------------------------------------------------
1 | ## 敏感词模块
2 |
3 | 默认最多设置 50 个敏感词, 设置 2 小时后生效,目前仅支持 `文本消息(RC:TxtMsg)` 的敏感词过滤、替换功能
4 |
5 | 默认不过滤、不替换 Server API 发送的消息,需要过滤敏、替换请 [提交工单](https://developer.rongcloud.cn) 申请开通
6 |
7 | 敏感词替换目前只支持单聊、群聊、聊天室会话类型消息
8 |
9 | ### Sensitive.add(sensitive){#add}
10 |
11 | 添加敏感词
12 |
13 | `sensitive` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :----------|:-------- |:----- |:------------------------------|:-------- |
17 | | keyword | string | 是 | 敏感词,最长不超过 32 个字符,格式为汉字、数字、字母|3.0.0|
18 | | type | number | 是 | 0: 敏感词替换 1: 敏感词屏蔽 | 3.0.0|
19 | | replace | string | 否 | 敏感词替换,最长不超过 32 个字符, 敏感词屏蔽可以为空 | 3.0.0|
20 |
21 | ##### 请求成功
22 |
23 | ```json
24 | {
25 | "code": 200
26 | }
27 | ```
28 |
29 | ### Sensitive.remove(sensitive){#remove}
30 |
31 | 删除敏感词
32 |
33 | `sensitive` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:-------- |
37 | | keywords | array | 是 | 每次最多删除 50 个敏感词,2 小时后生效| 3.0.0|
38 |
39 | ##### 请求成功
40 |
41 | ```json
42 | {
43 | "code": 200
44 | }
45 | ```
46 | ### Sensitive.getList(sensitive){#getList}
47 |
48 | 获取敏感词列表
49 |
50 | `sensitive` 参数的**属性说明**:
51 |
52 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
53 | | :----------|:-------- |:----- |:------------------------------|:-------- |
54 | | type | string | 否 | 敏感词类型,0: 敏感词替换, 1: 敏感词屏蔽, 为空获取全部| 3.0.0|
55 |
56 | ##### 请求成功
57 |
58 | ```json
59 | {
60 | "code": 200,
61 | "words": [{
62 | "type": 0,
63 | "word": "黄赌毒",
64 | "replaceWord": "***"
65 | }]
66 | }
67 | ```
68 | | 参数 | 类型 | 说明 |最低版本 |
69 | | :----------|:-------- |:------------------------------|:-------- |
70 | | type | string | 敏感词类型,0: 敏感词替换, 1: 敏感词屏蔽|3.0.0|
71 | | keyword | string | 敏感词 |3.0.0|
72 | | replace | string | 被替换的敏感词 | 3.0.0|
73 |
--------------------------------------------------------------------------------
/docs/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rongcloud/server-sdk-nodejs/e9e9f7a088276791679fe3c150c7eafbe93a4e52/docs/style/logo.png
--------------------------------------------------------------------------------
/docs/style/website.css:
--------------------------------------------------------------------------------
1 | .book{
2 | position: absolute;
3 | width: 100%;
4 | top: 65px;
5 | bottom: 0;
6 | height: auto;
7 | }
8 |
9 | .book .book-summary .exc-trigger:before {
10 | color: gray;
11 | }
12 |
13 | .book-body svg{
14 | max-width: 1000px !important;
15 | }
16 |
17 | div.page-inner {
18 | position: relative;
19 | max-width: 100%;
20 | margin: 0 auto;
21 | padding: 20px 65px 40px 71px;
22 | }
23 |
24 | .navigation {
25 | min-width: 65px;
26 | }
27 |
28 | .rong-head{
29 | position: absolute;
30 | top: 0;
31 | width: 100%;
32 | height: 65px;
33 | background: #F1F2F3;
34 | z-index: 11;
35 | }
36 |
37 | .rong-head a{
38 | color: #FFF;
39 | }
40 |
41 | .rong-head-box-logo{
42 | background-image: url(logo.png);
43 | background-repeat: no-repeat;
44 | height: 60px;
45 | width: 266px;
46 | background-size: contain;
47 | background-position: center;
48 | float: left;
49 | margin-left: 30px;
50 | }
--------------------------------------------------------------------------------
/docs/user/blacklist.md:
--------------------------------------------------------------------------------
1 | ## 用户黑名单
2 |
3 | ### Blacklist.add(user){#add}
4 |
5 | 将对方加入黑名单,屏蔽对方消息,但自己仍可给对方发送消息,应用中每个用户均可设置自己的黑名单
6 |
7 | `user` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 设置黑名单用户的唯一标识 |3.0.0|
12 | | blacklist| array | 是 | 被设置为黑名单的用户列表 |3.0.0|
13 |
14 | ##### 请求成功
15 |
16 | ```json
17 | {
18 | "code": 200
19 | }
20 | ```
21 |
22 | ### Blacklist.remove(user){#remove}
23 |
24 | 将用户从黑名单中移除
25 |
26 | `user` 参数的**属性说明**:
27 |
28 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
29 | | :----------|:-------- |:----- |:------------------------------|:----- |
30 | | id | string | 是 | 用户唯一标识 |3.0.0|
31 | | blacklist| array | 是 | 被移除黑名单列表 |3.0.0|
32 |
33 | ##### 请求成功
34 |
35 | ```json
36 | {
37 | "code": 200
38 | }
39 | ```
40 |
41 | ### Blacklist.getList(user){#getList}
42 |
43 | 获取某个用户的黑名单列表
44 |
45 | `user` 参数的**属性说明**:
46 |
47 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
48 | | :----------|:-------- |:----- |:------------------------------|:----- |
49 | | id | string | 是 | 用户唯一标识 |3.0.0|
50 |
51 | ##### 请求成功
52 |
53 | ```json
54 | {
55 | "code": 200,
56 | "users": [{
57 | "id": "ui023"
58 | }]
59 | }
60 | ```
61 | | 参数 | 类型 | 说明
62 | | :----------|:-------- |:-----
63 | | users | array | 被加入黑名单的 userId 列表
64 |
--------------------------------------------------------------------------------
/docs/user/block.md:
--------------------------------------------------------------------------------
1 | ## 用户封禁
2 |
3 | ### Block.add(user){#add}
4 |
5 | 用户在封禁期间所有 IM 功能均不可用,例如 `连接融云服务器`、`发送消息` 封禁期满后自动解除封禁,功能恢复正常
6 |
7 | `user` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | id | string | 是 | 被封禁的用户唯一标识 |3.0.0|
12 | | minute | number | 是 | 封禁时长 1 - 1 \* 30 \* 24 \* 60 分钟,最大值为 43200 分钟|3.0.0|
13 |
14 | ##### 请求成功
15 |
16 | ```json
17 | {
18 | "code": 200
19 | }
20 | ```
21 |
22 | ### Block.remove(user){#remove}
23 |
24 | 解除用户封禁
25 |
26 | `user` 参数的**属性说明**:
27 |
28 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
29 | | :----------|:-------- |:----- |:------------------------------|:----- |
30 | | id | string | 是 | 解除封禁用户唯一标识 |3.0.0|
31 |
32 | ##### 请求成功
33 |
34 | ```json
35 | {
36 | "code": 200
37 | }
38 | ```
39 |
40 | ### Block.getList(){#getList}
41 |
42 | 获取封禁用户列表
43 |
44 | ##### 请求成功
45 |
46 | ```json
47 | {
48 | "code": 200,
49 | "users": [{
50 | "id": "ujadk90ha",
51 | "blockEndTime": "2018-03-01 11:04:18"
52 | }]
53 | }
54 | ```
55 | | 参数 | 类型 | 说明
56 | | :-------------|:-------- |:-----
57 | | id | string | 被封禁的用户 Id
58 | | blockEndTime| string | 封禁结束时间
59 |
--------------------------------------------------------------------------------
/docs/user/mute-chatrooms.md:
--------------------------------------------------------------------------------
1 | ## 聊天室全局禁言模块
2 |
3 | 禁止用户在应用内所有聊天室中发言,可将此用户添加到聊天室全局禁言中,被禁言用户可以接收聊天室中聊天信息,但不能发送消息
4 |
5 | 多次调用,以最后一次为准
6 |
7 | 此功能需开通 [专有云服务](http://www.rongcloud.cn/deployment#proprietary-cloud)
8 |
9 | ### MuteChatrooms.add(chatroom){#add}
10 |
11 | 添加聊天室全局禁言
12 |
13 | `chatroom` 参数的**属性说明**:
14 |
15 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
16 | | :----------|:-------- |:----- |:------------------------------|:-------- |
17 | | members | array | 是 | 成员列表,最多不超过 20 个 |3.0.0 |
18 | | minute | number | 是 | 禁言时长,范围: 1 - 1 \* 30 \* 24 \* 60 分钟 | 3.0.0|
19 |
20 | `members` 说明:
21 |
22 | | 参数 | 类型 | 说明 |最低版本 |
23 | | :----------|:-------- |:------------------------------|:-------- |
24 | | id | string | 添加禁言用户 Id。 | 3.0.0 |
25 |
26 | ##### 请求成功
27 |
28 | ```json
29 | {
30 | "code": 200
31 | }
32 | ```
33 |
34 | ### MuteChatrooms.remove(chatroom){#remove}
35 |
36 | 解除聊天室全局禁言
37 |
38 | `chatroom` 参数的**属性说明**:
39 |
40 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
41 | | :----------|:-------- |:----- |:------------------------------|:-------- |
42 | | members | array | 是 | 解除禁言列表 | 3.0.0 |
43 |
44 | `members` 说明:
45 |
46 | | 参数 | 类型 | 说明 |最低版本 |
47 | | :----------|:-------- |:------------------------------|:-------- |
48 | | id | string | 解除禁言用户 Id。 | 3.0.0 |
49 |
50 | ##### 请求成功
51 |
52 | ```json
53 | {
54 | "code": 200
55 | }
56 | ```
57 | ### MuteChatrooms.getList(){#getList}
58 |
59 | 获取聊天室全局禁言列表
60 |
61 | ##### 请求成功
62 |
63 | ```json
64 | {
65 | "code": 200,
66 | "members": [{
67 | "id": "2582",
68 | "time": "2015-09-25 16:12:38"
69 | }]
70 | }
71 | ```
72 | | 参数 | 类型 | 说明
73 | | :----------|:-------- |:------------------------------
74 | | id | string | 被禁言用户 Id。
75 | | time | string | 解禁时间
76 |
--------------------------------------------------------------------------------
/docs/user/mute-groups.md:
--------------------------------------------------------------------------------
1 | ## 全局群成员禁言服务
2 |
3 | ### MuteGroups.add(group){#add}
4 |
5 | 添加全局群组禁言用户,禁止用户在所有群组中发送消息,禁言后只能接收群消息
6 |
7 | `group` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:----- |
11 | | members | array | 是 | 禁言群成员列表 |3.0.0|
12 | | minute | number | 是 | 禁言时长,范围 1 - 1 \* 30 \* 24 \* 60 分钟|3.0.0|
13 |
14 | `members` 说明:
15 |
16 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
17 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
18 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
19 |
20 | ##### 请求成功
21 |
22 | ```json
23 | {
24 | "code": 200
25 | }
26 | ```
27 |
28 | ### MuteGroups.remove(group){#remove}
29 |
30 | 解除禁言
31 |
32 | `group` 参数的**属性说明**:
33 |
34 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
35 | | :----------|:-------- |:----- |:------------------------------|:----- |
36 | | members | array | 是 | 解除禁言群成员列表 |3.0.0|
37 |
38 | `members` 说明:
39 |
40 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
41 | | :---------------- |:-------- |:----- |:------------------------------|:----- |
42 | | id | string | 是 | 群成员 Id,最大长度 30 个字符 | 3.0.0 |
43 |
44 | ##### 请求成功
45 |
46 | ```json
47 | {
48 | "code": 200
49 | }
50 | ```
51 |
52 | ### MuteGroups.getList(){#getList}
53 |
54 | 查询全局群禁言成员列表
55 |
56 |
57 | ##### 请求成功
58 |
59 | ```json
60 | {
61 | "code": 200,
62 | "members":[{
63 | "time":"2018-03-08 16:12:38",
64 | "id":"2582"
65 | }]
66 | }
67 | ```
68 |
69 | | 参数 | 类型 | 说明
70 | | :----------|:-------- |:-----
71 | | time | number | 解禁时间
72 | | id | string | 成员Id
73 |
--------------------------------------------------------------------------------
/docs/user/online-status.md:
--------------------------------------------------------------------------------
1 | ## 用户在线状态
2 |
3 | ### OnlineStatus.check(user){#check}
4 |
5 | 检查用户是否在线,调用频率 每秒 100 次
6 |
7 | `user` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:--------
11 | | id | string | 是 | 用户唯一标识 | 3.0.0|
12 |
13 | ##### 请求成功
14 |
15 | ```json
16 | {
17 | "code": 200,
18 | "status": 0
19 | }
20 | ```
21 |
22 | | 参数 | 类型 | 说明
23 | | :----------|:-------- |:-----
24 | | status | number | 1: 在线 0: 离线
25 |
--------------------------------------------------------------------------------
/docs/user/tag.md:
--------------------------------------------------------------------------------
1 | ## 用户标签
2 |
3 | ### Tag.set(tag){#set}
4 |
5 | 为应用中的用户添加标签,如果某用户已经添加了标签,再次对用户添加标签时将覆盖之前设置的标签内容。此功能 Java SDK 3.0.4 版本开始支持,Node.js SDK 3.0.1 版本开始支持。
6 |
7 | `tag` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |
10 | | :----------|:-------- |:----- |:------------------------------|
11 | | userId | string | 是 | 用户 Id。 |
12 | | tags | array | 是 | 用户标签列表,一个用户最多添加 20 个标签,每个 tag 最大不能超过 40 个字节,标签中不能包含特殊字符。 |
13 |
14 | ##### 请求成功
15 |
16 | ```json
17 | {
18 | "code": 200
19 | }
20 | ```
21 |
22 | ### Tag.batchset(tag){#batchset}
23 |
24 | 批量添加用户标签,此功能 Java SDK 3.0.4 版本开始支持,Node.js SDK 3.0.1 版本开始支持。
25 |
26 | `tag` 参数的**属性说明**:
27 |
28 | | 参数 | 类型 | 必填 | 说明 |
29 | | :----------|:-------- |:----- |:------------------------------|
30 | | userIds | array | 是 | 用户 Id 列表,一次最多支持 1000 个用户。 |
31 | | tags | array | 是 | 用户标签列表,一个用户最多添加 20 个标签,每个 tag 最大不能超过 40 个字节,标签中不能包含特殊字符。 |
32 |
33 | ##### 请求成功
34 |
35 | ```json
36 | {
37 | "code": 200
38 | }
39 | ```
40 |
41 | ### Tag.get(user){#get}
42 |
43 | 获取用户标签信息,此功能 Java SDK 3.0.4 版本开始支持,Node.js SDK 3.0.1 版本开始支持。
44 |
45 | `user` 参数的**属性说明**:
46 |
47 | | 参数 | 类型 | 必填 | 说明 |
48 | | :----------|:-------- |:----- |:------------------------------|
49 | | userIds | array | 是 | 用户 Id 列表,一次最多支持 50 个用户。 |
50 |
51 | ##### 请求成功
52 |
53 | `JSON 格式:`
54 |
55 | ```
56 | {
57 | "code": 200,
58 | "result": {
59 | "111": [],
60 | "222": [
61 | "帅哥","北京"
62 | ]
63 | }
64 | }
65 | ```
66 |
67 | 名称 | 类型 | 说明
68 | :-------|:-----|:-------------------
69 | `code` | int | 返回码,200 为正常。
70 | `result` | array | 用户所有的标签数组。
--------------------------------------------------------------------------------
/docs/user/user.md:
--------------------------------------------------------------------------------
1 | ## 用户模块
2 |
3 | ### User.register(user){#register}
4 |
5 | 生成用户在融云的唯一身份标识 `Token`,各端 SDK 使用 `Token` 连接融云服务器,终端用户在使用融云通讯能力前必须获取 Token。
6 |
7 | `user` 参数的**属性说明**:
8 |
9 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
10 | | :----------|:-------- |:----- |:------------------------------|:-------- |
11 | | id | string | 是 | 用户唯一标识,支持大小写英文字母、数字、部分特殊符号 + | = - _ 的组合方式,最大长度 64 字节。 |3.0.0|
12 | | name | string | 是 | 用户名称,最大长度 128 字节。用来在 Push 推送时显示用户的名称。 |3.0.0|
13 | | portrait | string | 是 | 用户头像地址,最大长度 1024 字节,例: `http://rongcloud.cn/portrait.jpg` 类型不限制, 建议: `jpg`、`png`|3.0.0|
14 |
15 | ##### 请求成功
16 |
17 | ```json
18 | {
19 | "code": 200,
20 | "userId": "ujadk90ha",
21 | "token": "SfJQnrPDLZNMxSl+cNLZNMxSl+cNGDRLrkqw5cNGDRLrkqw5Xap7yf5"
22 | }
23 | ```
24 | | 参数 | 类型 | 说明
25 | | :----------|:-------- |:-----
26 | | userId | string | 用户唯一标识
27 | | token | string | 对应在融云服务器的唯一标识
28 |
29 | ### User.update(user){#update}
30 |
31 | 修改用户信息
32 |
33 | `user` 参数的**属性说明**:
34 |
35 | | 参数 | 类型 | 必填 | 说明 |最低版本 |
36 | | :----------|:-------- |:----- |:------------------------------|:-------- |
37 | | id | string | 是 | 用户唯一标识,支持大小写英文字母、数字、部分特殊符号 + | = - _ 的组合方式,最大长度 64 字节。 |3.0.0|
38 | | name | string | 是 | 用户名称,最大长度 128 字节。用来在 Push 推送时显示用户的名称。 |3.0.0|
39 | | portrait | string | 是 | 用户头像地址,最大长度 1024 字节,例: `http://rongcloud.cn/portrait.jpg` 类型不限制, 建议: `jpg`、`png`| 3.0.0|
40 |
41 | ##### 请求成功
42 |
43 | ```json
44 | {
45 | "code": 200
46 | }
47 | ```
48 |
--------------------------------------------------------------------------------
/example/co/chatroom/ban.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Ban = Chatroom.Ban;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | members: [{
18 | id: 'member01'
19 | }],
20 | minute: 30
21 | };
22 | var result = yield Ban.add(chatroom);
23 | console.log(result);
24 | }).catch(error => {
25 | console.log(error);
26 | });
27 |
28 | /*
29 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#remove
30 | */
31 | co(function *() {
32 | var chatroom = {
33 | members: [{
34 | id: 'member02'
35 | }]
36 | };
37 | var result = yield Ban.remove(chatroom);
38 | console.log(result);
39 | }).catch(error => {
40 | console.log(error);
41 | });
42 |
43 | /*
44 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#getList
45 | */
46 | co(function *() {
47 | var result = yield Ban.getList();
48 | console.log(result);
49 | }).catch(error => {
50 | console.log(error);
51 | });
52 |
--------------------------------------------------------------------------------
/example/co/chatroom/block.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Block = Chatroom.Block;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | id: 'chrmId001',
18 | members: [{
19 | id: 'seal9901'
20 | }],
21 | minute: 30
22 | };
23 | var result = yield Block.add(chatroom);
24 | console.log(result);
25 | }).catch(error => {
26 | console.log(error);
27 | });
28 | /*
29 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#remove
30 | */
31 | co(function *() {
32 | var chatroom = {
33 | id: 'chrmId001',
34 | members: [{
35 | id: 'seal990'
36 | }]
37 | };
38 | var result = yield Block.remove(chatroom);
39 | console.log(result);
40 | }).catch(error => {
41 | console.log(error);
42 | });
43 | /*
44 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#getList
45 | */
46 | co(function *() {
47 | var chatroom = {
48 | id: 'chrmId001'
49 | };
50 | var result = yield Block.getList(chatroom);
51 | console.log(result);
52 | }).catch(error => {
53 | console.log(error);
54 | });
55 |
--------------------------------------------------------------------------------
/example/co/chatroom/chatroom.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#create
13 | */
14 | co(function *() {
15 | var chatroom = {
16 | id: 'chrm001',
17 | name: 'RongCloud'
18 | };
19 | var result = yield Chatroom.create(chatroom);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 |
25 | /*
26 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#destroy
27 | */
28 | co(function *() {
29 | var chatroom = {
30 | id: 'chrm001'
31 | };
32 | var result = yield Chatroom.destroy(chatroom);
33 | console.log(result);
34 | }).catch(error => {
35 | console.log(error);
36 | });
37 |
38 | /*
39 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#get
40 | */
41 | co(function *() {
42 | var chatroom = {
43 | id: 'chrm002',
44 | count: 20,
45 | order: 1
46 | };
47 | var result = yield Chatroom.get(chatroom);
48 | console.log(result);
49 | }).catch(error => {
50 | console.log(error);
51 | });
52 |
53 | /*
54 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#isExist
55 | */
56 | co(function *() {
57 | var chatroom = {
58 | id: 'chrm002',
59 | members: [{
60 | id: 'sea9902'
61 | }]
62 | };
63 | var result = yield Chatroom.isExist(chatroom);
64 | console.log(result);
65 | }).catch(error => {
66 | console.log(error);
67 | });
68 |
--------------------------------------------------------------------------------
/example/co/chatroom/demotion.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Demotion = Chatroom.Demotion;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | msgs: ['RC:TxtMsg01', 'RC:TxtMsg02']
18 | };
19 | var result = yield Demotion.add(chatroom);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 | /*
25 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#remove
26 | */
27 | co(function *() {
28 | var chatroom = {
29 | msgs: ['RC:TxtMsg01']
30 | };
31 | var result = yield Demotion.remove(chatroom);
32 | console.log(result);
33 | }).catch(error => {
34 | console.log(error);
35 | });
36 | /*
37 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#getList
38 | */
39 | co(function *() {
40 | var result = yield Demotion.getList();
41 | console.log(result);
42 | }).catch(error => {
43 | console.log(error);
44 | });
45 |
--------------------------------------------------------------------------------
/example/co/chatroom/distribute.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Distribute = Chatroom.Distribute;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/distribute.html#stop
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | id: 'chrmId001'
18 | };
19 | var result = yield Distribute.stop(chatroom);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 | /*
25 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/distribute.html#resume
26 | */
27 | co(function *() {
28 | var chatroom = {
29 | id: 'chrmId001'
30 | };
31 | var result = yield Distribute.resume(chatroom);
32 | console.log(result);
33 | }).catch(error => {
34 | console.log(error);
35 | });
36 |
--------------------------------------------------------------------------------
/example/co/chatroom/gag.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Gag = Chatroom.Gag;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | id: 'chatroom001',
18 | members: [{
19 | id: 'member02'
20 | }],
21 | minute: 30
22 | };
23 | var result = yield Gag.add(chatroom);
24 | console.log(result);
25 | }).catch(error => {
26 | console.log(error);
27 | });
28 |
29 | /*
30 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#remove
31 | */
32 | co(function *() {
33 | var chatroom = {
34 | id: 'chatroom001',
35 | members: [{
36 | id: 'member02'
37 | }]
38 | };
39 | var result = yield Gag.remove(chatroom);
40 | console.log(result);
41 | }).catch(error => {
42 | console.log(error);
43 | });
44 |
45 | /*
46 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#getList
47 | */
48 | co(function *() {
49 | var chatroom = {
50 | id: 'chatroom001'
51 | };
52 | var result = yield Gag.getList(chatroom);
53 | console.log(result);
54 | }).catch(error => {
55 | console.log(error);
56 | });
57 |
--------------------------------------------------------------------------------
/example/co/chatroom/keepalive.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var KeepAlive = Chatroom.KeepAlive;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | id: 'chrmId001'
18 | };
19 | var result = yield KeepAlive.add(chatroom);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 |
25 | /*
26 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#remove
27 | */
28 | co(function *() {
29 | var chatroom = {
30 | id: 'chrmId001'
31 | };
32 | var result = yield KeepAlive.remove(chatroom);
33 | console.log(result);
34 | }).catch(error => {
35 | console.log(error);
36 | });
37 |
38 | /*
39 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#getList
40 | */
41 | co(function *() {
42 | var result = yield KeepAlive.getList();
43 | console.log(result);
44 | }).catch(error => {
45 | console.log(error);
46 | });
47 |
--------------------------------------------------------------------------------
/example/co/chatroom/whitelist/message.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var WhiteList = Chatroom.Whitelist.Message;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | msgs: ['RC:TxtMsg01']
18 | };
19 | var result = yield WhiteList.add(chatroom);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 | /*
25 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#remove
26 | */
27 | co(function *() {
28 | var chatroom = {
29 | msgs: ['RC:TxtMsg01']
30 | };
31 | var result = yield WhiteList.remove(chatroom);
32 | console.log(result);
33 | }).catch(error => {
34 | console.log(error);
35 | });
36 |
37 | /*
38 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#getList
39 | */
40 | co(function *() {
41 | var result = yield WhiteList.getList();
42 | console.log(result);
43 | }).catch(error => {
44 | console.log(error);
45 | });
46 |
--------------------------------------------------------------------------------
/example/co/chatroom/whitelist/user.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Chatroom = RongSDK.Chatroom;
10 | var Whitelist = Chatroom.Whitelist.User;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#add
14 | */
15 | co(function *() {
16 | var chatroom = {
17 | id: 'chatroom001',
18 | members: [{
19 | id: 'member01'
20 | }]
21 | };
22 | var result = yield Whitelist.add(chatroom);
23 | console.log(result);
24 | }).catch(error => {
25 | console.log(error);
26 | });
27 |
28 | /*
29 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#remove
30 | */
31 | co(function *() {
32 | var chatroom = {
33 | id: 'chatroom001',
34 | members: [{
35 | id: 'member02'
36 | }]
37 | };
38 | var result = yield Whitelist.remove(chatroom);
39 | console.log(result);
40 | }).catch(error => {
41 | console.log(error);
42 | });
43 |
44 | /*
45 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#getList
46 | */
47 | co(function *() {
48 | var chatroom = {
49 | id: 'chatroom001'
50 | };
51 | var result = yield Whitelist.getList(chatroom);
52 | console.log(result);
53 | }).catch(error => {
54 | console.log(error);
55 | });
56 |
--------------------------------------------------------------------------------
/example/co/conversation.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | //npm install co --save
3 | var co = require('co');
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Conversation = RongSDK.Conversation;
10 |
11 | co(function* (){
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/conversation/conversation.html#mute
14 | */
15 | var conversation = {
16 | type: 'PRIVATE',
17 | userId: 'mka091amn',
18 | targetId: 'adm1klnm'
19 | };
20 | var result = yield Conversation.mute(conversation);
21 | console.log(result);
22 | }).catch(error => {
23 | console.log(error);
24 | });
25 |
26 | co(function* (){
27 | /*
28 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/conversation/conversation.html#unmute
29 | */
30 | var conversation = {
31 | type: 'PRIVATE',
32 | userId: 'mka091amn',
33 | targetId: 'adm1klnm'
34 | };
35 | var result = yield Conversation.unmute(conversation);
36 | console.log(result);
37 | }).catch(error => {
38 | console.log(error);
39 | });
40 |
--------------------------------------------------------------------------------
/example/co/group/group-gag.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Group = RongSDK.Group;
10 | var Gag = Group.Gag;
11 |
12 | /*
13 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#add
14 | */
15 | co(function* (){
16 | var group = {
17 | id: 'watergroup',
18 | members: [{
19 | id: 'sea9901'
20 | }],
21 | minute: 50
22 | };
23 | var result = yield Gag.add(group);
24 | console.log(result);
25 | }).catch(error => {
26 | console.log(error);
27 | });
28 |
29 | /*
30 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#remove
31 | */
32 | co(function* (){
33 | var group = {
34 | id: 'watergroup',
35 | members: [{
36 | id: 'dkamn901'
37 | }]
38 | };
39 | var result = yield Gag.remove(group);
40 | console.log(result);
41 | }).catch(error => {
42 | console.log(error);
43 | });
44 |
45 | /*
46 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#getList
47 | */
48 | co(function* (){
49 | var group = {
50 | id: 'watergroup'
51 | };
52 | var result = yield Gag.getList(group);
53 | console.log(result);
54 | }).catch(error => {
55 | console.log(error);
56 | });
57 |
--------------------------------------------------------------------------------
/example/co/group/group.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Group = RongSDK.Group;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#sync
13 | */
14 | co(function* (){
15 | var user = {
16 | id: 'martin9901',
17 | groups: [{id: 'group999', name: 'RongCloud'}]
18 | };
19 | var result = yield Group.sync(user);
20 | console.log(result);
21 | }).catch(error => {
22 | console.log(error);
23 | });
24 |
25 | /*
26 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#create
27 | */
28 | co(function* (){
29 | var group = {
30 | id: 'watergroup',
31 | name: 'WaterGroup',
32 | members: [{
33 | id: 'sea9901'
34 | }]
35 | };
36 | var result = yield Group.create(group);
37 | console.log(result);
38 | }).catch(error => {
39 | console.log(error);
40 | });
41 |
42 | /*
43 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#join
44 | */
45 | co(function* (){
46 | var group = {
47 | id: 'watergroup',
48 | member: {
49 | id: 'sea9901'
50 | }
51 | };
52 | var result = yield Group.join(group);
53 | console.log(result);
54 | }).catch(error => {
55 | console.log(error);
56 | });
57 |
58 | /*
59 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#quit
60 | */
61 | co(function* (){
62 | var group = {
63 | id: 'watergroup',
64 | member: {
65 | id: 'sea9901'
66 | }
67 | };
68 | var result = yield Group.quit(group);
69 | console.log(result);
70 | }).catch(error => {
71 | console.log(error);
72 | });
73 |
74 | /*
75 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#dismiss
76 | */
77 | co(function* (){
78 | var params = {
79 | id: 'watergroup',
80 | member: {
81 | id: 'sea9901'
82 | }
83 | };
84 | var result = yield Group.dismiss(params);
85 | console.log(result);
86 | }).catch(error => {
87 | console.log(error);
88 | });
89 |
90 | /*
91 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#update
92 | */
93 | co(function* (){
94 | var group = {
95 | id: 'watergroup',
96 | name: 'RongCloud'
97 | };
98 | var result = yield Group.update(group);
99 | console.log(result);
100 | }).catch(error => {
101 | console.log(error);
102 | });
103 |
104 | /*
105 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#get
106 | */
107 | co(function* (){
108 | var group = {
109 | id: 'watergroup'
110 | };
111 | var result = yield Group.get(group);
112 | console.log(result);
113 | }).catch(error => {
114 | console.log(error);
115 | });
116 |
--------------------------------------------------------------------------------
/example/co/message/chatroom.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Message = RongSDK.Message;
10 | var Chatroom = Message.Chatroom;
11 |
12 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/chatroom.html#send
13 | co(function* (){
14 | var message = {
15 | senderId: 'sea9902',
16 | targetId: 'kmn001',
17 | objectName: 'RC:TxtMsg',
18 | content: {
19 | content: '你好,主播'
20 | }
21 | };
22 | var result = yield Chatroom.send(message);
23 | console.log(result);
24 | }).catch(error => {
25 | console.log(error);
26 | });
27 |
28 | /*
29 |
30 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/chatroom.html#broadcast
31 |
32 | 此功能需开通专有服务: http://www.rongcloud.cn/deployment#overseas-cloud
33 | */
34 |
35 | co(function* (){
36 | var message = {
37 | senderId: 'sea9902',
38 | objectName: 'RC:TxtMsg',
39 | content: {
40 | content: '欢迎来到绿色直播间,禁止谩骂、涉黄等违规行为'
41 | }
42 | };
43 | var result = yield Chatroom.broadcast(message);
44 | console.log(result);
45 | }).catch(error => {
46 | console.log(error);
47 | });
48 |
--------------------------------------------------------------------------------
/example/co/message/group.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Message = RongSDK.Message;
10 | var Group = Message.Group;
11 |
12 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/group.html#send
13 | co(function* (){
14 | var message = {
15 | senderId: 'sea9902',
16 | targetId: 'markoiwm',
17 | objectName: 'RC:TxtMsg',
18 | content: {
19 | content: '你好,小明'
20 | }
21 | };
22 | var result = yield Group.send(message);
23 | console.log(result);
24 | }).catch(error => {
25 | console.log(error);
26 | });
27 |
28 | /**
29 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/group.html#sendMention
30 | */
31 | co(function* (){
32 | var message = {
33 | senderId: 'sea9902',
34 | targetId: 'markoiwm',
35 | objectName: 'RC:TxtMsg',
36 | content: {
37 | content: '你好,小明',
38 | mentionedInfo: {
39 | type: 1,
40 | userIds: ['kladd', 'almmn1'],
41 | pushContent: '问候消息'
42 | }
43 | }
44 | };
45 | var result = yield Group.sendMention(message);
46 | console.log(result);
47 | }).catch(error => {
48 | console.log(error);
49 | });
50 |
51 | /*
52 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#recall
53 |
54 | 客户端发送消息成功后可以取到消息的 uId 和 sentTime,可通过客户端将参数传到服务端
55 | */
56 | co(function* (){
57 | var message = {
58 | senderId: 'sea9901',
59 | targetId: 'markoiwm',
60 | uId: '5GSB-RPM1-KP8H-9JHF',
61 | sentTime: 1519444243981
62 | };
63 | var result = yield Group.recall(message);
64 | console.log(result);
65 | }).catch(error => {
66 | console.log(error);
67 | });
68 |
--------------------------------------------------------------------------------
/example/co/message/history.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Message = RongSDK.Message;
10 | var History = Message.History;
11 |
12 | co(function* (){
13 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/history.html#get
14 | var message = {
15 | date: '2018030613'
16 | };
17 | var result = yield History.get(message);
18 | console.log(result);
19 | }).catch(error => {
20 | console.log(error);
21 | });
22 |
23 | co(function* (){
24 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/history.html#get
25 | var message = {
26 | date: '2018030613'
27 | };
28 | var result = yield History.remove(message);
29 | console.log(result);
30 | }).catch(error => {
31 | console.log(error);
32 | });
33 |
--------------------------------------------------------------------------------
/example/co/message/private.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Message = RongSDK.Message;
10 | var Private = Message.Private;
11 |
12 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#send
13 | co(function* (){
14 | var message = {
15 | senderId: 'sea9902',
16 | targetId: 'markoiwm',
17 | objectName: 'RC:TxtMsg',
18 | content: {
19 | content: '你好,小明'
20 | }
21 | };
22 | var result = yield Private.send(message);
23 | console.log(result);
24 | }).catch(error => {
25 | console.log(error);
26 | });
27 |
28 | /*
29 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#sendTemplate
30 |
31 | sea9901、sea9902 是用户 Id, 发送成功后:
32 |
33 | sea9901:
34 | 收到消息: 小明语文成绩 90 分
35 | 收到 Push: 小明你的成绩出来了
36 |
37 | sea9902:
38 | 收到消息: 小红语文成绩 95 分
39 | 收到 Push: 小红你的成绩出来了
40 |
41 |
42 | 注意事项: objectName 类型的消息与 template 中的属性需一致,例如:
43 |
44 | 文本消息的 objectName 是 RC:TxtMsg ,属性有 content ,那么 template 的属性是 content
45 |
46 | data 和 push 是必传项
47 |
48 | 消息类型对应关系请参考: http://www.rongcloud.cn/docs/server_sdk_api/GLOSSARY.html
49 | */
50 | co(function* (){
51 | var message = {
52 | senderId: 'kamdnq',
53 | objectName: 'RC:TxtMsg',
54 | template: {
55 | content: '{name}, 语文成绩 {score} 分'
56 | },
57 | content: {
58 | sea9901: {
59 | data: {'{name}': '小明', '{score}': '90'},
60 | push: '{name} 你的成绩出来了'
61 | },
62 | sea9902: {
63 | data: {'{name}': '小红', '{score}': '95'},
64 | push: '{name} 你的成绩出来了'
65 | }
66 | }
67 | };
68 | var result = yield Private.sendTemplate(message);
69 | console.log(result);
70 | }).catch(error => {
71 | console.log(error);
72 | });
73 |
74 | /*
75 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#recall
76 |
77 | 客户端发送消息成功后可以取到消息的 uId 和 sentTime,可通过客户端将参数传到服务端
78 | */
79 | co(function* (){
80 | var message = {
81 | senderId: 'sea9901',
82 | targetId: 'sea9902',
83 | uId: '5GSB-RPM1-KP8H-9JHF',
84 | sentTime: 1519444243981
85 | };
86 | var result = yield Private.recall(message);
87 | console.log(result);
88 | }).catch(error => {
89 | console.log(error);
90 | });
91 |
--------------------------------------------------------------------------------
/example/co/message/system.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Message = RongSDK.Message;
10 | var System = Message.System;
11 |
12 |
13 | co(function* (){
14 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#send
15 | var message = {
16 | senderId: '__system__',
17 | targetId: 'sea9902',
18 | objectName: 'RC:TxtMsg',
19 | content: {
20 | content: '你好,小明,我是系统管理员'
21 | }
22 | };
23 | var result = yield System.send(message);
24 | console.log(result);
25 | }).catch(error => {
26 | console.log(error);
27 | });
28 |
29 | co(function* (){
30 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#broadcast
31 | var message = {
32 | senderId: '__system__',
33 | objectName: 'RC:TxtMsg',
34 | content: {
35 | content: '明天 9:00 ,20 层会议室开大会'
36 | }
37 | };
38 | var result = yield System.broadcast(message);
39 | console.log(result);
40 | }).catch(error => {
41 | console.log(error);
42 | });
43 |
44 | /*
45 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#sendTemplate
46 |
47 | sea9901、sea9902 是用户 Id, 发送成功后:
48 |
49 | sea9901:
50 | 收到消息: 小明语文成绩 90 分
51 | 收到 Push: 小明你的成绩出来了
52 |
53 | sea9902:
54 | 收到消息: 小红语文成绩 95 分
55 | 收到 Push: 小红你的成绩出来了
56 |
57 |
58 | 注意事项: objectName 类型的消息与 template 中的属性需一致,例如:
59 |
60 | 文本消息的 objectName 是 RC:TxtMsg ,属性有 content ,那么 template 的属性是 content
61 |
62 | data 和 push 是必传项
63 |
64 | 消息类型对应关系请参考: http://www.rongcloud.cn/docs/server_sdk_api/GLOSSARY.html
65 | */
66 | co(function* (){
67 | var message = {
68 | senderId: '__system__',
69 | objectName: 'RC:TxtMsg',
70 | template: {
71 | content: '{name}, 语文成绩 {score} 分'
72 | },
73 | content: {
74 | sea9901: {
75 | data: {'{name}': '小明', '{score}': '90'},
76 | push: '{name} 你的成绩出来了'
77 | },
78 | sea9902: {
79 | data: {'{name}': '小红', '{score}': '95'},
80 | push: '{name} 你的成绩出来了'
81 | }
82 | }
83 | };
84 | var result = yield System.sendTemplate(message);
85 | console.log(result);
86 | }).catch(error => {
87 | console.log(error);
88 | });
89 |
--------------------------------------------------------------------------------
/example/co/sensitive.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var Sensitive = RongSDK.Sensitive;
10 |
11 | co(function* (){
12 | /*
13 | 添加敏感词替换
14 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#add
15 | */
16 | var rule = {
17 | keyword: '小米手机',
18 | replace: 'iPhone7',
19 | type: 0
20 | };
21 | var result = yield Sensitive.add(rule);
22 | console.log(result);
23 | }).catch(error => {
24 | console.log(error);
25 | });
26 |
27 | co(function* (){
28 | /*
29 | 添加敏感词屏蔽
30 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#add
31 | */
32 | var rule = {
33 | keyword: '小米手机',
34 | type: 1
35 | };
36 | var result = yield Sensitive.add(rule);
37 | console.log(result);
38 | }).catch(error => {
39 | console.log(error);
40 | });
41 |
42 | co(function* (){
43 | /*
44 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#remove
45 | */
46 | var rule = {
47 | keywords: '小米手机'
48 | };
49 | var result = yield Sensitive.remove(rule);
50 | console.log(result);
51 | }).catch(error => {
52 | console.log(error);
53 | });
54 |
55 | co(function* (){
56 | /*
57 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#getList
58 | */
59 | var result = yield Sensitive.getList();
60 | console.log(result);
61 | }).catch(error => {
62 | console.log(error);
63 | });
64 |
--------------------------------------------------------------------------------
/example/co/user/blacklist.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var User = RongSDK.User;
10 | var Blacklist = User.Blacklist;
11 |
12 | co(function* (){
13 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#add
14 | var user = {
15 | id: 'ujadk90ha',
16 | blacklist: [{
17 | id: 'kkj9o01'
18 | }]
19 | };
20 | var result = yield Blacklist.add(user);
21 | console.log(result);
22 | }).catch(error => {
23 | console.log(error);
24 | });
25 | co(function* (){
26 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#remove
27 | var user = {
28 | id: 'ujadk90ha',
29 | blacklist: [{
30 | id: 'kkj9o01'
31 | }]
32 | };
33 | var result = yield Blacklist.remove(user);
34 | console.log(result);
35 | }).catch(error => {
36 | console.log(error);
37 | });
38 | co(function* (){
39 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#getList
40 | var user = {
41 | id: 'ujadk90ha'
42 | };
43 | var result = yield Blacklist.getList(user);
44 | console.log(result);
45 | }).catch(error => {
46 | console.log(error);
47 | });
48 |
--------------------------------------------------------------------------------
/example/co/user/block.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 |
4 | var RongSDK = require('rongcloud-sdk')({
5 | appkey: '8luwapkvucoil',
6 | secret: 'y0icysjl4h3LWz'
7 | });
8 |
9 | var User = RongSDK.User;
10 | var UserBlock = User.Block;
11 |
12 | co(function* (){
13 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#add
14 | var user = {
15 | id: 'ujadk90ha',
16 | minute: 60
17 | };
18 | var result = yield UserBlock.add(user);
19 | console.log(result);
20 | }).catch(error => {
21 | console.log(error);
22 | });
23 |
24 | co(function* (){
25 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#remove
26 | var user = {
27 | id: 'ujadk90ha'
28 | };
29 | var result = yield UserBlock.remove(user);
30 | console.log(result);
31 | }).catch(error => {
32 | console.log(error);
33 | });
34 |
35 | co(function* (){
36 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#getList
37 | var result = yield UserBlock.getList();
38 | console.log(result);
39 | }).catch(error => {
40 | console.log(error);
41 | });
42 |
--------------------------------------------------------------------------------
/example/co/user/user.js:
--------------------------------------------------------------------------------
1 | //npm install co --save
2 | var co = require('co');
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var User = RongSDK.User;
9 |
10 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register
11 | co(function* (){
12 | var user = {
13 | id: 'ujadk90ha',
14 | name: 'Maritn',
15 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
16 | };
17 | user = yield User.register(user);
18 | console.log(user);
19 | }).catch(error => {
20 | console.log(error);
21 | });
22 |
23 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#update
24 | co(function* (){
25 | var user = {
26 | id: 'ujadk90ha',
27 | name: 'MarMar',
28 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
29 | };
30 | user = yield User.update(user);
31 | console.log(user);
32 | }).catch(error => {
33 | console.log(error);
34 | });
35 |
--------------------------------------------------------------------------------
/example/promise/chatroom/ban.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Ban = Chatroom.Ban;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#add
13 | */
14 | var chatroom = {
15 | members: [{
16 | id: 'member01'
17 | }],
18 | minute: 30
19 | };
20 | Ban.add(chatroom).then(result => {
21 | console.log(result);
22 | }, error => {
23 | console.log(error);
24 | });
25 |
26 | /*
27 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#remove
28 | */
29 | var chatroom = {
30 | members: [{
31 | id: 'member02'
32 | }]
33 | };
34 | Ban.remove(chatroom).then(result => {
35 | console.log(result);
36 | }, error => {
37 | console.log(error);
38 | });
39 |
40 | /*
41 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/ban.html#getList
42 | */
43 | Ban.getList().then(result => {
44 | console.log(result);
45 | }, error => {
46 | console.log(error);
47 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/block.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Block = Chatroom.Block;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#add
13 | */
14 | var chatroom = {
15 | id: 'chrmId001',
16 | members: [{
17 | id: 'seal9901'
18 | }],
19 | minute: 30
20 | };
21 | Block.add(chatroom).then(result => {
22 | console.log(result);
23 | }, error => {
24 | console.log(error);
25 | });
26 |
27 | /*
28 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#remove
29 | */
30 | var chatroom = {
31 | id: 'chrmId001',
32 | members: [{
33 | id: 'seal990'
34 | }]
35 | };
36 | Block.remove(chatroom).then(result => {
37 | console.log(result);
38 | }, error => {
39 | console.log(error);
40 | });
41 |
42 | /*
43 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/block.html#getList
44 | */
45 | var chatroom = {
46 | id: 'chrmId001'
47 | };
48 | Block.getList(chatroom).then(result => {
49 | console.log(result);
50 | }, error => {
51 | console.log(error);
52 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/chatroom.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 |
10 | /*
11 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#create
12 | */
13 | var chatroom = {
14 | id: 'chrm001',
15 | name: 'RongCloud'
16 | };
17 | Chatroom.create(chatroom).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#destroy
25 | */
26 | var chatroom = {
27 | id: 'chrm001'
28 | };
29 | Chatroom.destroy(chatroom).then(result => {
30 | console.log(result);
31 | }, error => {
32 | console.log(error);
33 | });
34 |
35 | /*
36 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#get
37 | */
38 | var chatroom = {
39 | id: 'chrm002',
40 | count: 20,
41 | order: 1
42 | };
43 | Chatroom.get(chatroom).then(result => {
44 | console.log(result);
45 | }, error => {
46 | console.log(error);
47 | });
48 |
49 | /*
50 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/chatroom.html#isExist
51 | */
52 | var chatroom = {
53 | id: 'chrm002',
54 | members: [{
55 | id: 'sea9902'
56 | }]
57 | };
58 | Chatroom.isExist(chatroom).then(result => {
59 | console.log(result);
60 | }, error => {
61 | console.log(error);
62 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/demotion.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Demotion = Chatroom.Demotion;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#add
13 | */
14 | var chatroom = {
15 | msgs: ['RC:TxtMsg01', 'RC:TxtMsg02']
16 | };
17 | Demotion.add(chatroom).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#remove
25 | */
26 | var chatroom = {
27 | msgs: ['RC:TxtMsg01']
28 | };
29 | Demotion.remove(chatroom).then(result => {
30 | console.log(result);
31 | }, error => {
32 | console.log(error);
33 | });
34 |
35 | /*
36 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/demotion.html#getList
37 | */
38 | Demotion.getList().then(result => {
39 | console.log(result);
40 | }, error => {
41 | console.log(error);
42 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/distribute.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Distribute = Chatroom.Distribute;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/distribute.html#stop
13 | */
14 | var chatroom = {
15 | id: 'chrmId001'
16 | };
17 | Distribute.stop(chatroom).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/distribute.html#resume
25 | */
26 | var chatroom = {
27 | id: 'chrmId001'
28 | };
29 | Distribute.resume(chatroom).then(result => {
30 | console.log(result);
31 | }, error => {
32 | console.log(error);
33 | });
34 |
--------------------------------------------------------------------------------
/example/promise/chatroom/gag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Gag = Chatroom.Gag;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#add
13 | */
14 | var chatroom = {
15 | id: 'chatroom001',
16 | members: [{
17 | id: 'member02'
18 | }],
19 | minute: 30
20 | };
21 | Gag.add(chatroom).then(result => {
22 | console.log(result);
23 | }, error => {
24 | console.log(error);
25 | });
26 |
27 | /*
28 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#remove
29 | */
30 | var chatroom = {
31 | id: 'chatroom001',
32 | members: [{
33 | id: 'member02'
34 | }]
35 | };
36 | Gag.remove(chatroom).then(result => {
37 | console.log(result);
38 | }, error => {
39 | console.log(error);
40 | });
41 |
42 | /*
43 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/gag.html#getList
44 | */
45 | var chatroom = {
46 | id: 'chatroom001'
47 | };
48 | Gag.getList(chatroom).then(result => {
49 | console.log(result);
50 | }, error => {
51 | console.log(error);
52 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/keepalive.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var KeepAlive = Chatroom.KeepAlive;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#add
13 | */
14 | var chatroom = {
15 | id: 'chrmId001'
16 | };
17 | KeepAlive.add(chatroom).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#remove
25 | */
26 | var chatroom = {
27 | id: 'chrmId001'
28 | };
29 | KeepAlive.remove(chatroom).then(result => {
30 | console.log(result);
31 | }, error => {
32 | console.log(error);
33 | });
34 |
35 | /*
36 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/chatroom/keepalive.html#getList
37 | */
38 | KeepAlive.getList().then(result => {
39 | console.log(result);
40 | }, error => {
41 | console.log(error);
42 | });
--------------------------------------------------------------------------------
/example/promise/chatroom/whitelist/message.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var WhiteList = Chatroom.Whitelist.Message;
10 |
11 | /*
12 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#add
13 | */
14 | var chatroom = {
15 | msgs: ['RC:TxtMsg01']
16 | };
17 | WhiteList.add(chatroom).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#remove
25 | */
26 | var chatroom = {
27 | msgs: ['RC:TxtMsg01']
28 | };
29 | WhiteList.remove(chatroom).then(result => {
30 | console.log(result);
31 | }, error => {
32 | console.log(error);
33 | });
34 |
35 | /*
36 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/message.html#getList
37 | */
38 | WhiteList.getList().then(result => {
39 | console.log(result);
40 | }, error => {
41 | console.log(error);
42 | });
43 |
--------------------------------------------------------------------------------
/example/promise/chatroom/whitelist/user.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Chatroom = RongSDK.Chatroom;
9 | var Whitelist = Chatroom.Whitelist.User;
10 |
11 | /*
12 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#add
13 | */
14 | var chatroom = {
15 | id: 'chatroom001',
16 | members: [{
17 | id: 'member01'
18 | }]
19 | };
20 | Whitelist.add(chatroom).then(result => {
21 | console.log(result);
22 | }, error => {
23 | console.log(error);
24 | });
25 |
26 | /*
27 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#remove
28 | */
29 | var chatroom = {
30 | id: 'chatroom001',
31 | members: [{
32 | id: 'member02'
33 | }]
34 | };
35 | Whitelist.remove(chatroom).then(result => {
36 | console.log(result);
37 | }, error => {
38 | console.log(error);
39 | });
40 |
41 | /*
42 | http://www.rongcloud.cn/docs/server_sdk_api/chatroom/whitelist/user.html#getList
43 | */
44 | var chatroom = {
45 | id: 'chatroom001'
46 | };
47 | Whitelist.getList(chatroom).then(result => {
48 | console.log(result);
49 | }, error => {
50 | console.log(error);
51 | });
52 |
--------------------------------------------------------------------------------
/example/promise/conversation.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('../')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Conversation = RongSDK.Conversation;
9 |
10 | /*
11 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/conversation/conversation.html#mute
12 | */
13 | var conversation = {
14 | type: 'PRIVATE',
15 | userId: 'mka091amn',
16 | targetId: 'adm1klnm'
17 | };
18 | Conversation.mute(conversation).then(result => {
19 | console.log(result);
20 | }, error => {
21 | console.log(error);
22 | });
23 |
24 | /*
25 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/conversation/conversation.html#unmute
26 | */
27 | var conversation = {
28 | type: 'PRIVATE',
29 | userId: 'mka091amn',
30 | targetId: 'adm1klnm'
31 | };
32 | Conversation.unmute(conversation).then(result => {
33 | console.log(result);
34 | }, error => {
35 | console.log(error);
36 | });
37 |
--------------------------------------------------------------------------------
/example/promise/group/group-gag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Group = RongSDK.Group;
9 | var Gag = Group.Gag;
10 |
11 | /*
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#add
13 | */
14 | var group = {
15 | id: 'watergroup',
16 | members: [{
17 | id: 'sea9901'
18 | }],
19 | minute: 50
20 | };
21 | Gag.add(group).then(result => {
22 | console.log(result);
23 | }, error => {
24 | console.log(error);
25 | });
26 |
27 | /*
28 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#remove
29 | */
30 | var group = {
31 | id: 'watergroup',
32 | members: [{
33 | id: 'dkamn901'
34 | }]
35 | };
36 | Gag.remove(group).then(result => {
37 | console.log(result);
38 | }, error => {
39 | console.log(error);
40 | });
41 |
42 | /*
43 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/gag.html#getList
44 | */
45 | var group = {
46 | id: 'watergroup'
47 | };
48 | Gag.getList(group).then(result => {
49 | console.log(result);
50 | }, error => {
51 | console.log(error);
52 | });
--------------------------------------------------------------------------------
/example/promise/group/group-mute-all.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 | var Group = RongSDK.Group;
8 | var MuteAll = Group.Mute.All;
9 |
10 | /*
11 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-all-members.html#add
12 | */
13 | MuteAll.add({
14 | groups: [{
15 | id: 'WaterGroup'
16 | }]
17 | }).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-all-members.html#remove
25 | */
26 | MuteAll.remove({
27 | groups: [{
28 | id: 'WaterGroup'
29 | }]
30 | }).then(result => {
31 | console.log(result);
32 | }, error => {
33 | console.log(error);
34 | });
35 |
36 | /*
37 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-all-members.html#getList
38 | */
39 | MuteAll.getList().then(result => {
40 | console.log(result);
41 | }, error => {
42 | console.log(error);
43 | });
--------------------------------------------------------------------------------
/example/promise/group/group-mute-member.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Group = RongSDK.Group;
9 | var MuteMember = Group.Mute.Member;
10 |
11 | /*
12 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-members.html#add
13 | */
14 | var group = {
15 | id: 'watergroup',
16 | members: [{
17 | id: 'sea9901'
18 | }],
19 | minute: 50
20 | };
21 | MuteMember.add(group).then(result => {
22 | console.log(result);
23 | }, error => {
24 | console.log(error);
25 | });
26 |
27 | /*
28 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-members.html#remove
29 | */
30 | var group = {
31 | id: 'watergroup',
32 | members: [{
33 | id: 'dkamn901'
34 | }]
35 | };
36 | MuteMember.remove(group).then(result => {
37 | console.log(result);
38 | }, error => {
39 | console.log(error);
40 | });
41 |
42 | /*
43 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/mute-members.html#getList
44 | */
45 | var group = {
46 | id: 'watergroup'
47 | };
48 | MuteMember.getList(group).then(result => {
49 | console.log(result);
50 | }, error => {
51 | console.log(error);
52 | });
--------------------------------------------------------------------------------
/example/promise/group/group-mute-whitelist.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 | var Group = RongSDK.Group;
8 | var MuteWhitelist = Group.Mute.Whitelist;
9 |
10 | /*
11 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/whiteList/mute-user.html#add
12 | */
13 | MuteWhitelist.add({
14 | id: 'WaterGroup',
15 | members: [{
16 | id: 'sea9901'
17 | }]
18 | }).then(result => {
19 | console.log(result);
20 | }, error => {
21 | console.log(error);
22 | });
23 |
24 | /*
25 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/whiteList/mute-user.html#remove
26 | */
27 | MuteWhitelist.remove({
28 | id: 'WaterGroup',
29 | members: [{
30 | id: 'sea9901'
31 | }]
32 | }).then(result => {
33 | console.log(result);
34 | }, error => {
35 | console.log(error);
36 | });
37 | /*
38 | API 文档: https://www.rongcloud.cn/docs/server_sdk_api/group/whiteList/mute-user.html#getList
39 | */
40 | MuteWhitelist.getList({
41 | id: 'WaterGroup'
42 | }).then(result => {
43 | console.log(result);
44 | }, error => {
45 | console.log(error);
46 | });
--------------------------------------------------------------------------------
/example/promise/group/group.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Group = RongSDK.Group;
9 |
10 | /*
11 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#sync
12 | */
13 | var user = {
14 | id: 'martin9901',
15 | groups: [{id: 'group999', name: 'RongCloud'}]
16 | };
17 | Group.sync(user).then(result => {
18 | console.log(result);
19 | }, error => {
20 | console.log(error);
21 | });
22 |
23 | /*
24 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#create
25 | */
26 | var group = {
27 | id: 'watergroup',
28 | name: 'WaterGroup',
29 | members: [{
30 | id: 'sea9901'
31 | }]
32 | };
33 | Group.create(group).then(result => {
34 | console.log(result);
35 | }, error => {
36 | console.log(error);
37 | });
38 |
39 | /*
40 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#join
41 | */
42 | var group = {
43 | id: 'watergroup',
44 | member: {
45 | id: 'sea9901'
46 | }
47 | };
48 | Group.join(group).then(result => {
49 | console.log(result);
50 | }, error => {
51 | console.log(error);
52 | });
53 |
54 | /*
55 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#quit
56 | */
57 | var group = {
58 | id: 'watergroup',
59 | member: {
60 | id: 'sea9901'
61 | }
62 | };
63 | Group.quit(group).then(result => {
64 | console.log(result);
65 | }, error => {
66 | console.log(error);
67 | });
68 |
69 | /*
70 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#dismiss
71 | */
72 | var params = {
73 | id: 'watergroup',
74 | member: {
75 | id: 'sea9901'
76 | }
77 | };
78 | Group.dismiss(params).then(result => {
79 | console.log(result);
80 | }, error => {
81 | console.log(error);
82 | });
83 |
84 | /*
85 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#update
86 | */
87 | var group = {
88 | id: 'watergroup',
89 | name: 'RongCloud'
90 | };
91 | Group.update(group).then(result => {
92 | console.log(result);
93 | }, error => {
94 | console.log(error);
95 | });
96 |
97 | /*
98 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/group/group.html#get
99 | */
100 | var group = {
101 | id: 'watergroup'
102 | };
103 | Group.get(group).then(result => {
104 | console.log(result);
105 | }, error => {
106 | console.log(error);
107 | });
108 |
--------------------------------------------------------------------------------
/example/promise/message/chatroom.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Message = RongSDK.Message;
9 | var Chatroom = Message.Chatroom;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/chatroom.html#send
12 | var message = {
13 | senderId: 'sea9902',
14 | targetId: 'kmn001',
15 | objectName: 'RC:TxtMsg',
16 | content: {
17 | content: '你好,主播'
18 | }
19 | };
20 | Chatroom.send(message).then(result => {
21 | console.log(result);
22 | }, error => {
23 | console.log(error);
24 | });
25 |
26 | /*
27 |
28 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/chatroom.html#broadcast
29 |
30 | 此功能需开通专有服务: http://www.rongcloud.cn/deployment#overseas-cloud
31 | */
32 |
33 | var message = {
34 | senderId: 'sea9902',
35 | objectName: 'RC:TxtMsg',
36 | content: {
37 | content: '欢迎来到绿色直播间,禁止谩骂、涉黄等违规行为'
38 | }
39 | };
40 | Chatroom.broadcast(message).then(result => {
41 | console.log(result);
42 | }, error => {
43 | console.log(error);
44 | });
45 |
--------------------------------------------------------------------------------
/example/promise/message/group.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Message = RongSDK.Message;
9 | var Group = Message.Group;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/group.html#send
12 | var message = {
13 | senderId: 'sea9902',
14 | targetId: 'markoiwm',
15 | objectName: 'RC:TxtMsg',
16 | content: {
17 | content: '你好,小明'
18 | }
19 | };
20 | Group.send(message).then(result => {
21 | console.log(result);
22 | }, error => {
23 | console.log(error);
24 | });
25 |
26 | /**
27 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/group.html#sendMention
28 | */
29 | var message = {
30 | senderId: 'sea9902',
31 | targetId: 'markoiwm',
32 | objectName: 'RC:TxtMsg',
33 | content: {
34 | content: '你好,小明',
35 | mentionedInfo: {
36 | type: 1,
37 | userIds: ['kladd', 'almmn1'],
38 | pushContent: '问候消息'
39 | }
40 | }
41 | };
42 | Group.sendMention(message).then(result => {
43 | console.log(result);
44 | }, error => {
45 | console.log(error);
46 | });
47 |
48 | /*
49 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#recall
50 |
51 | 客户端发送消息成功后可以取到消息的 uId 和 sentTime,可通过客户端将参数传到服务端
52 | */
53 | var message = {
54 | senderId: 'sea9901',
55 | targetId: 'markoiwm',
56 | uId: '5GSB-RPM1-KP8H-9JHF',
57 | sentTime: 1519444243981
58 | };
59 | Group.recall(message).then(result => {
60 | console.log(result);
61 | }, error => {
62 | console.log(error);
63 | });
64 |
--------------------------------------------------------------------------------
/example/promise/message/history.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Message = RongSDK.Message;
9 | var History = Message.History;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/history.html#get
12 | var message = {
13 | date: '2018030613'
14 | };
15 | History.get(message).then(result => {
16 | console.log(result);
17 | }, error => {
18 | console.log(error);
19 | });
20 |
21 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/history.html#get
22 | var message = {
23 | date: '2018030613'
24 | };
25 | History.remove(message).then(result => {
26 | console.log(result);
27 | }, error => {
28 | console.log(error);
29 | });
--------------------------------------------------------------------------------
/example/promise/message/private.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Message = RongSDK.Message;
9 | var Private = Message.Private;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#send
12 | var message = {
13 | senderId: 'sea9902',
14 | targetId: 'markoiwm',
15 | objectName: 'RC:TxtMsg',
16 | content: {
17 | content: '你好,小明'
18 | }
19 | };
20 | Private.send(message).then(result => {
21 | console.log(result);
22 | }, error => {
23 | console.log(error);
24 | });
25 |
26 | /*
27 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#sendTemplate
28 |
29 | sea9901、sea9902 是用户 Id, 发送成功后:
30 |
31 | sea9901:
32 | 收到消息: 小明语文成绩 90 分
33 | 收到 Push: 小明你的成绩出来了
34 |
35 | sea9902:
36 | 收到消息: 小红语文成绩 95 分
37 | 收到 Push: 小红你的成绩出来了
38 |
39 |
40 | 注意事项: objectName 类型的消息与 template 中的属性需一致,例如:
41 |
42 | 文本消息的 objectName 是 RC:TxtMsg ,属性有 content ,那么 template 的属性是 content
43 |
44 | data 和 push 是必传项
45 |
46 | 消息类型对应关系请参考: http://www.rongcloud.cn/docs/server_sdk_api/GLOSSARY.html
47 | */
48 | var message = {
49 | senderId: 'kamdnq',
50 | objectName: 'RC:TxtMsg',
51 | template: {
52 | content: '{name}, 语文成绩 {score} 分'
53 | },
54 | content: {
55 | sea9901: {
56 | data: {'{name}': '小明', '{score}': '90'},
57 | push: '{name} 你的成绩出来了'
58 | },
59 | sea9902: {
60 | data: {'{name}': '小红', '{score}': '95'},
61 | push: '{name} 你的成绩出来了'
62 | }
63 | }
64 | };
65 | Private.sendTemplate(message).then(result => {
66 | console.log(result);
67 | }, error => {
68 | console.log(error);
69 | });
70 |
71 | /*
72 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/private.html#recall
73 |
74 | 客户端发送消息成功后可以取到消息的 uId 和 sentTime,可通过客户端将参数传到服务端
75 | */
76 | var message = {
77 | senderId: 'sea9901',
78 | targetId: 'sea9902',
79 | uId: '5GSB-RPM1-KP8H-9JHF',
80 | sentTime: 1519444243981
81 | };
82 | Private.recall(message).then(result => {
83 | console.log(result);
84 | }, error => {
85 | console.log(error);
86 | });
87 |
88 |
--------------------------------------------------------------------------------
/example/promise/message/system.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Message = RongSDK.Message;
9 | var System = Message.System;
10 |
11 |
12 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#send
13 | var message = {
14 | senderId: '__system__',
15 | targetId: 'sea9902',
16 | objectName: 'RC:TxtMsg',
17 | content: {
18 | content: '你好,小明,我是系统管理员'
19 | }
20 | };
21 | System.send(message).then(result => {
22 | console.log(result);
23 | }, error => {
24 | console.log(error);
25 | });
26 |
27 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#broadcast
28 | var message = {
29 | senderId: '__system__',
30 | objectName: 'RC:TxtMsg',
31 | content: {
32 | content: '明天 9:00 ,20 层会议室开大会'
33 | }
34 | };
35 | System.broadcast(message).then(result => {
36 | console.log(result);
37 | }, error => {
38 | console.log(error);
39 | });
40 |
41 | /*
42 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/message/system.html#sendTemplate
43 |
44 | sea9901、sea9902 是用户 Id, 发送成功后:
45 |
46 | sea9901:
47 | 收到消息: 小明语文成绩 90 分
48 | 收到 Push: 小明你的成绩出来了
49 |
50 | sea9902:
51 | 收到消息: 小红语文成绩 95 分
52 | 收到 Push: 小红你的成绩出来了
53 |
54 |
55 | 注意事项: objectName 类型的消息与 template 中的属性需一致,例如:
56 |
57 | 文本消息的 objectName 是 RC:TxtMsg ,属性有 content ,那么 template 的属性是 content
58 |
59 | data 和 push 是必传项
60 |
61 | 消息类型对应关系请参考: http://www.rongcloud.cn/docs/server_sdk_api/GLOSSARY.html
62 | */
63 | var message = {
64 | senderId: '__system__',
65 | objectName: 'RC:TxtMsg',
66 | template: {
67 | content: '{name}, 语文成绩 {score} 分'
68 | },
69 | content: {
70 | sea9901: {
71 | data: {'{name}': '小明', '{score}': '90'},
72 | push: '{name} 你的成绩出来了'
73 | },
74 | sea9902: {
75 | data: {'{name}': '小红', '{score}': '95'},
76 | push: '{name} 你的成绩出来了'
77 | }
78 | }
79 | };
80 |
81 | System.sendTemplate(message).then(result => {
82 | console.log(result);
83 | }, error => {
84 | console.log(error);
85 | });
--------------------------------------------------------------------------------
/example/promise/push.js:
--------------------------------------------------------------------------------
1 | let RongSDK = require('../../index')({
2 | appkey: '8luwapkvucoil',
3 | secret: 'y0icysjl4h3LWz'
4 | });
5 |
6 | let Push = RongSDK.Push;
7 |
8 | // let content = {
9 | // platform: ["ios", "android"],
10 | // audience: { tag: ["女", "年轻"], tag_or: ["北京", "上海"], userid: ["123", "456"], "is_to_all": false },
11 | // notification: {
12 | // alert: "this is a push",
13 | // ios: { title: "标题", alert: "override alert", extras: { id: "userId2", name: "Lisa" } },
14 | // android: { alert: "override alert", extras: { id: "userId", name: "martin" } }
15 | // }
16 | // };
17 | // Push.push(content).then(result => {
18 | // console.log(result);
19 | // }, error => {
20 | // console.log(error);
21 | // });
22 |
23 | let content = {
24 | platform: ["ios", "android"],
25 | fromUserId: 'mon888',
26 | audience: { tag: ["女", "年轻"], tag_or: ["北京", "上海"], userid: ["123", "456"], is_to_all: false },
27 | message: {
28 | content: JSON.stringify({ content: 'hello' }),
29 | objectName: "RC:TxtMsg"
30 | },
31 | notification: {
32 | alert: "this is a push",
33 | ios: { title: "标题", alert: "override alert", extras: { id: "userId2", name: "Lisa" } },
34 | android: { alert: "override alert", extras: { id: "userId", name: "martin" } }
35 | }
36 | };
37 | Push.message(content).then(result => {
38 | console.log(result);
39 | }, error => {
40 | console.log(error);
41 | });
42 |
43 |
--------------------------------------------------------------------------------
/example/promise/sensitive.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('../')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var Sensitive = RongSDK.Sensitive;
9 |
10 | /*
11 | 添加敏感词替换
12 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#add
13 | */
14 | var rule = {
15 | keyword: '小米手机',
16 | replace: 'iPhone7',
17 | type: 0
18 | };
19 | Sensitive.add(rule).then(result => {
20 | console.log(result);
21 | }, error => {
22 | console.log(error);
23 | });
24 |
25 | /*
26 | 添加敏感词屏蔽
27 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#add
28 | */
29 | var rule = {
30 | keyword: '小米手机',
31 | type: 1
32 | };
33 | Sensitive.add(rule).then(result => {
34 | console.log(result);
35 | }, error => {
36 | console.log(error);
37 | });
38 |
39 | /*
40 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#remove
41 | */
42 | var rule = {
43 | keywords: '小米手机'
44 | };
45 | Sensitive.remove(rule).then(result => {
46 | console.log(result);
47 | }, error => {
48 | console.log(error);
49 | });
50 |
51 | /*
52 | API 文档: http://www.rongcloud.cn/docs/server_sdk_api/sensitive/sensitive.html#getList
53 | */
54 | Sensitive.getList().then(result => {
55 | console.log(result);
56 | }, error => {
57 | console.log(error);
58 | });
--------------------------------------------------------------------------------
/example/promise/user/blacklist.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('../../')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var User = RongSDK.User;
9 | var Blacklist = User.Blacklist;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#add
12 | var user = {
13 | id: 'ujadk90ha',
14 | blacklist: [{
15 | id: 'kkj9o01'
16 | }]
17 | };
18 | Blacklist.add(user).then(result => {
19 | console.log(result);
20 | }, error => {
21 | console.log(error);
22 | });
23 |
24 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#remove
25 | var user = {
26 | id: 'ujadk90ha',
27 | blacklist: [{
28 | id: 'kkj9o01'
29 | }]
30 | };
31 | Blacklist.remove(user).then(result => {
32 | console.log(result);
33 | }, error => {
34 | console.log(error);
35 | });
36 |
37 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/black.html#getList
38 | var user = {
39 | id: 'ujadk90ha'
40 | };
41 | Blacklist.getList(user).then(result => {
42 | console.log(result);
43 | }, error => {
44 | console.log(error);
45 | });
--------------------------------------------------------------------------------
/example/promise/user/block.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var User = RongSDK.User;
9 | var UserBlock = User.Block;
10 |
11 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#add
12 | var user = {
13 | id: 'ujadk90ha',
14 | minute: 60
15 | };
16 | UserBlock.add(user).then(result => {
17 | console.log(result);
18 | }, error => {
19 | console.log(error);
20 | });
21 |
22 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#remove
23 | var user = {
24 | id: 'ujadk90ha'
25 | };
26 | UserBlock.remove(user).then(result => {
27 | console.log(result);
28 | }, error => {
29 | console.log(error);
30 | });
31 |
32 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/block.html#getList
33 | UserBlock.getList().then(result => {
34 | console.log(result);
35 | }, error => {
36 | console.log(error);
37 | });
38 |
--------------------------------------------------------------------------------
/example/promise/user/tag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var User = RongSDK.User;
9 | var UserTag = User.Tag;
10 |
11 | /* 设置指定用户 Tag */
12 | var user = {
13 | id: 'ujadk90ha',
14 | tags: ["RongCloud"]
15 | };
16 | UserTag.set(user).then(result => {
17 | console.log(result);
18 | }, error => {
19 | console.log(error);
20 | });
21 |
22 | /* 移除指定用户 Tag */
23 | var user = {
24 | id: 'ujadk90ha'
25 | };
26 | UserTag.remove(user).then(result => {
27 | console.log(result);
28 | }, error => {
29 | console.log(error);
30 | });
31 |
32 | /* 批量获取用户 Tag */
33 | var users = [{
34 | id: 'mon9901'
35 | },{
36 | id: 'mon9902'
37 | },{
38 | id: 'ujadk90ha'
39 | }];
40 | UserTag.getList(users).then(result => {
41 | console.log(result);
42 | }, error => {
43 | console.log(error);
44 | });
45 |
46 | /* 批量设置用户 Tag */
47 | var params = {
48 | users: [{
49 | id: 'mon9901'
50 | },{
51 | id: 'mon9902'
52 | }],
53 | tags: ["IM", "RTC"]
54 | };
55 | UserTag.batchSet(params).then(result => {
56 | console.log(result);
57 | }, error => {
58 | console.log(error);
59 | });
60 |
61 | /* 批量移除用户 Tag */
62 | var params = {
63 | users: [{
64 | id: 'mon9901'
65 | }]
66 | };
67 | UserTag.batchRemove(params).then(result => {
68 | console.log(result);
69 | }, error => {
70 | console.log(error);
71 | });
--------------------------------------------------------------------------------
/example/promise/user/user.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var RongSDK = require('rongcloud-sdk')({
4 | appkey: '8luwapkvucoil',
5 | secret: 'y0icysjl4h3LWz'
6 | });
7 |
8 | var User = RongSDK.User;
9 |
10 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register
11 | var user = {
12 | id: 'ujadk90ha',
13 | name: 'Maritn',
14 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
15 | };
16 | User.register(user).then(result => {
17 | console.log(result);
18 | }, error => {
19 | console.log(error);
20 | });
21 |
22 | // API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#update
23 | var user = {
24 | id: 'ujadk90ha',
25 | name: 'MarMar',
26 | portrait: 'http://7xogjk.com1.z0.glb.clouddn.com/IuDkFprSQ1493563384017406982'
27 | };
28 | User.update(user).then(result => {
29 | console.log(result);
30 | }, error => {
31 | console.log(error);
32 | });
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/rongcloud');
--------------------------------------------------------------------------------
/lib/chatroom/ban/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_user_ban_add",
4 | "url": "chatroom/user/ban/add",
5 | "params": {
6 | "chatroom": {
7 | "members": [{
8 | "id": "akfj0a1"
9 | }],
10 | "minute": 100
11 | }
12 | },
13 | "response": {
14 | "success": {
15 | "code": 200,
16 | "msg": "成功返回"
17 | },
18 | "fail": {
19 | "20004": {
20 | "code": "20004",
21 | "msg": "封禁时间不正确, 当前传入为 {{size}}, 正确范围 1 - 1 * 30 * 24 * 60 分钟"
22 | },
23 | "20005": {
24 | "code": "20005",
25 | "msg": "{{name}} 参数为必传项"
26 | },
27 | "20006": {
28 | "code": "20006",
29 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
30 | },
31 | "1004": {
32 | "code": "20000",
33 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
34 | },
35 | "1008": {
36 | "code": "20001",
37 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
38 | }
39 | }
40 | }
41 | },
42 | "remove": {
43 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_user_ban_remove",
44 | "url": "chatroom/user/ban/remove",
45 | "params": {
46 | "chatroom": {
47 | "members": [{
48 | "id": "akfj0a1"
49 | }]
50 | }
51 | },
52 | "response": {
53 | "success": {
54 | "code": 200,
55 | "msg": "成功返回"
56 | },
57 | "fail": {
58 | "20005": {
59 | "code": "20005",
60 | "msg": "{{name}} 参数为必传项"
61 | },
62 | "20006": {
63 | "code": "20006",
64 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
65 | },
66 | "1004": {
67 | "code": "20000",
68 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
69 | },
70 | "1008": {
71 | "code": "20001",
72 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
73 | }
74 | }
75 | }
76 | },
77 | "getList": {
78 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_user_ban_query",
79 | "url": "chatroom/user/ban/query",
80 | "params": {},
81 | "response": {
82 | "success": {
83 | "code": "200",
84 | "members": [{
85 | "time": "2015-09-25 16:12:38",
86 | "id": "2582"
87 | }]
88 | },
89 | "fail": {
90 | "1004": {
91 | "code": "20000",
92 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
93 | },
94 | "1008": {
95 | "code": "20001",
96 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
97 | }
98 | }
99 | }
100 | }
101 | }
--------------------------------------------------------------------------------
/lib/chatroom/demotion/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | 参考文档:http://rongcloud.cn/docs/server.html#chatroom_message_priority_add
3 | */
4 | const config = require('./api.json');
5 | const verify = require('../verify.json');
6 |
7 | const request = require('../../request').request;
8 | const utils = require('../../utils');
9 |
10 | const logger = utils.logger;
11 | const getError = utils.getError;
12 |
13 | const check = utils.check;
14 |
15 | let add = (demotion) => {
16 | let conf = config.add;
17 | let error = check({
18 | api: conf,
19 | model: 'demotion',
20 | data: demotion,
21 | verify: verify.demotion
22 | });
23 | if (error) {
24 | return Promise.reject(error);
25 | }
26 | demotion = utils.rename(demotion, {
27 | msgs: 'objectName'
28 | });
29 | return request({
30 | url: conf.url,
31 | data: demotion
32 | }).then(result => {
33 | return result.text;
34 | }).catch(error => {
35 | error = getError({
36 | code: error,
37 | errors: conf.response.fail
38 | });
39 | logger.log({
40 | content: error,
41 | level: 'error',
42 | pos: 'ChatroomDemotion.add'
43 | });
44 | return error;
45 | });
46 | };
47 |
48 | let remove = (demotion) => {
49 | let conf = config.remove;
50 | let error = check({
51 | api: conf,
52 | model: 'demotion',
53 | data: demotion,
54 | verify: verify.demotion
55 | });
56 | if (error) {
57 | return Promise.reject(error);
58 | }
59 | demotion = utils.rename(demotion, {
60 | msgs: 'objectName'
61 | });
62 | return request({
63 | url: conf.url,
64 | data: demotion
65 | }).then(result => {
66 | return result.text;
67 | }).catch(error => {
68 | error = getError({
69 | code: error,
70 | errors: conf.response.fail
71 | });
72 | logger.log({
73 | content: error,
74 | level: 'error',
75 | pos: 'ChatroomDemotion.remove'
76 | });
77 | return error;
78 | });
79 | };
80 |
81 | let getList = () => {
82 | let conf = config.getList;
83 | return request({
84 | url: conf.url,
85 | data: {}
86 | }).then(result => {
87 | return result.text;
88 | }).catch(error => {
89 | error = getError({
90 | code: error,
91 | errors: conf.response.fail
92 | });
93 | logger.log({
94 | content: error,
95 | level: 'error',
96 | pos: 'ChatroomDemotion.getList'
97 | });
98 | return error;
99 | });
100 | };
101 |
102 | module.exports = {
103 | add: add,
104 | remove: remove,
105 | getList: getList
106 | };
--------------------------------------------------------------------------------
/lib/chatroom/distribute/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "stop": {
3 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_message_stop_distribution",
4 | "url": "chatroom/message/stopDistribution",
5 | "params": {
6 | "chatroom": {
7 | "id": "chatroom01"
8 | }
9 | },
10 | "response": {
11 | "success": {
12 | "code": "200",
13 | "msg": "成功返回"
14 | },
15 | "fail": {
16 | "20003": {
17 | "code": "20003",
18 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 字节"
19 | },
20 | "20005": {
21 | "code": "20005",
22 | "msg": "{{name}} 参数为必传项"
23 | },
24 | "20006": {
25 | "code": "20006",
26 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
27 | },
28 | "1004": {
29 | "code": "20000",
30 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
31 | },
32 | "1008": {
33 | "code": "20001",
34 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
35 | }
36 | }
37 | }
38 | },
39 | "resume": {
40 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_message_resume_distribution",
41 | "url": "chatroom/message/resumeDistribution",
42 | "params": {
43 | "chatroom": {
44 | "id": "chatroom01"
45 | }
46 | },
47 | "response": {
48 | "success": {
49 | "code": "200",
50 | "msg": "成功返回"
51 | },
52 | "fail": {
53 | "20003": {
54 | "code": "20003",
55 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 字节"
56 | },
57 | "20005": {
58 | "code": "20005",
59 | "msg": "{{name}} 参数为必传项"
60 | },
61 | "20006": {
62 | "code": "20006",
63 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
64 | },
65 | "1004": {
66 | "code": "20000",
67 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
68 | },
69 | "1008": {
70 | "code": "20001",
71 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
72 | }
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/lib/chatroom/distribute/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | 参考文档:http://rongcloud.cn/docs/server.html#chatroom_message
3 | */
4 |
5 | const config = require('./api.json');
6 | const verify = require('../verify.json');
7 |
8 | const request = require('../../request').request;
9 | const utils = require('../../utils');
10 |
11 | const _ = utils.underscore;
12 | const logger = utils.logger;
13 | const getError = utils.getError;
14 |
15 | const check = utils.check;
16 |
17 | let resume = (chatroom) => {
18 | let conf = config.resume;
19 | let chrmVerify = _.pick(verify.chatroom, 'id');
20 |
21 | let error = check({
22 | api: conf,
23 | model: 'chatroom',
24 | data: chatroom,
25 | verify: chrmVerify
26 | });
27 |
28 | if (error) {
29 | return Promise.reject(error);
30 | }
31 |
32 | chatroom = utils.rename(chatroom, {
33 | id: 'chatroomId'
34 | });
35 |
36 | return request({
37 | url: conf.url,
38 | data: chatroom
39 | }).then(result => {
40 | return result.text;
41 | }).catch(error => {
42 | error = getError({
43 | code: error,
44 | errors: conf.response.fail
45 | });
46 | logger.log({
47 | content: error,
48 | level: 'error',
49 | pos: 'ChatroomDistribute.resume'
50 | });
51 | return error;
52 | });
53 | };
54 |
55 | let stop = (chatroom) => {
56 | let conf = config.stop;
57 | let chrmVerify = _.pick(verify.chatroom, 'id');
58 |
59 | let error = check({
60 | api: conf,
61 | model: 'chatroom',
62 | data: chatroom,
63 | verify: chrmVerify
64 | });
65 |
66 | if (error) {
67 | return Promise.reject(error);
68 | }
69 |
70 | chatroom = utils.rename(chatroom, {
71 | id: 'chatroomId'
72 | });
73 |
74 | return request({
75 | url: conf.url,
76 | data: chatroom
77 | }).then(result => {
78 | return result.text;
79 | }).catch(error => {
80 | error = getError({
81 | code: error,
82 | errors: conf.response.fail
83 | });
84 | logger.log({
85 | content: error,
86 | level: 'error',
87 | pos: 'ChatroomDistribute.stop'
88 | });
89 | return error;
90 | });
91 | };
92 |
93 | module.exports = {
94 | resume: resume,
95 | stop: stop
96 | };
--------------------------------------------------------------------------------
/lib/chatroom/keepalive/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_keepalive_add",
4 | "url": "chatroom/keepalive/add",
5 | "params": {
6 | "chatroom": {
7 | "id": "chatroomId01"
8 | }
9 | },
10 | "response": {
11 | "success": {
12 | "code": "200",
13 | "msg": "成功返回"
14 | },
15 | "fail": {
16 | "20003": {
17 | "code": "20003",
18 | "msg": "chatroomId 长度超限, chatroomId >= 1 且 chatroomId <= 64 单位: 字节"
19 | },
20 | "20005": {
21 | "code": "20005",
22 | "msg": "{{name}} 参数为必传项"
23 | },
24 | "1004": {
25 | "code": "20000",
26 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
27 | },
28 | "1008": {
29 | "code": "20001",
30 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
31 | }
32 | }
33 | }
34 | },
35 | "remove": {
36 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_keepalive_remove",
37 | "url": "chatroom/keepalive/remove",
38 | "params": {
39 | "chatroom": {
40 | "id": "chatroomId01"
41 | }
42 | },
43 | "response": {
44 | "success": {
45 | "code": "200",
46 | "msg": "成功返回"
47 | },
48 | "fail": {
49 | "20003": {
50 | "code": "20003",
51 | "msg": "chatroomId 长度超限, chatroomId >= 1 且 chatroomId <= 64 单位: 字节"
52 | },
53 | "20005": {
54 | "code": "20005",
55 | "msg": "{{name}} 参数为必传项"
56 | },
57 | "1004": {
58 | "code": "20000",
59 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
60 | },
61 | "1008": {
62 | "code": "20001",
63 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
64 | }
65 | }
66 | }
67 | },
68 | "getList": {
69 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_keepalive_query",
70 | "url": "chatroom/keepalive/query",
71 | "params": {},
72 | "response": {
73 | "success": {
74 | "code": "200",
75 | "chatrooms": ["chatroomId1", "chatroomId2"]
76 | },
77 | "fail": {
78 | "20003": {
79 | "code": "20003",
80 | "msg": "chatroomId 长度超限, chatroomId >= 1 且 chatroomId <= 64 单位: 字节"
81 | },
82 | "20005": {
83 | "code": "20005",
84 | "msg": "{{name}} 参数为必传项"
85 | },
86 | "1004": {
87 | "code": "20000",
88 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
89 | },
90 | "1008": {
91 | "code": "20001",
92 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
93 | }
94 | }
95 | }
96 | }
97 | }
--------------------------------------------------------------------------------
/lib/chatroom/keepalive/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | 参考文档:http://rongcloud.cn/docs/server.html#chatroom_keepalive
3 | */
4 | const config = require('./api.json');
5 | const verify = require('../verify.json');
6 |
7 | const request = require('../../request').request;
8 | const utils = require('../../utils');
9 |
10 | const _ = utils.underscore;
11 | const logger = utils.logger;
12 | const getError = utils.getError;
13 |
14 | const check = utils.check;
15 |
16 | let add = (chatroom) => {
17 | let conf = config.add;
18 | let chrmVerify = _.pick(verify.chatroom, 'id');
19 | let error = check({
20 | api: conf,
21 | model: 'chatroom',
22 | data: chatroom,
23 | verify: chrmVerify
24 | });
25 |
26 | if (error) {
27 | return Promise.reject(error);
28 | }
29 |
30 | chatroom = utils.rename(chatroom, {
31 | id: 'chatroomId'
32 | });
33 |
34 | return request({
35 | url: conf.url,
36 | data: chatroom
37 | }).then(result => {
38 | return result.text;
39 | }).catch(error => {
40 | error = getError({
41 | code: error,
42 | errors: conf.response.fail
43 | });
44 | logger.log({
45 | content: error,
46 | level: 'error',
47 | pos: 'ChatroomKeepAlive.add'
48 | });
49 | return error;
50 | });
51 | };
52 |
53 | let remove = (chatroom) => {
54 | let conf = config.remove;
55 | let chrmVerify = _.pick(verify.chatroom, 'id');
56 | let error = check({
57 | api: conf,
58 | model: 'chatroom',
59 | data: chatroom,
60 | verify: chrmVerify
61 | });
62 |
63 | if (error) {
64 | return Promise.reject(error);
65 | }
66 |
67 | chatroom = utils.rename(chatroom, {
68 | id: 'chatroomId'
69 | });
70 |
71 | return request({
72 | url: conf.url,
73 | data: chatroom
74 | }).then(result => {
75 | return result.text;
76 | }).catch(error => {
77 | error = getError({
78 | code: error,
79 | errors: conf.response.fail
80 | });
81 | logger.log({
82 | content: error,
83 | level: 'error',
84 | pos: 'ChatroomKeepAlive.remove'
85 | });
86 | return error;
87 | });
88 | };
89 |
90 | let getList = () => {
91 | let conf = config.getList;
92 |
93 | return request({
94 | url: conf.url,
95 | data: {}
96 | }).then(result => {
97 | return utils.rename(result.text, {
98 | chatroomIds: 'chatrooms'
99 | });
100 | }).catch(error => {
101 | error = getError({
102 | code: error,
103 | errors: conf.response.fail
104 | });
105 | logger.log({
106 | content: error,
107 | level: 'error',
108 | pos: 'ChatroomKeepAlive.getList'
109 | });
110 | return error;
111 | });
112 | };
113 |
114 | module.exports = {
115 | add: add,
116 | remove: remove,
117 | getList: getList
118 | };
--------------------------------------------------------------------------------
/lib/chatroom/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "chatroom": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | }
8 | },
9 | "id": {
10 | "require": {
11 | "must": true,
12 | "invalid": "20005"
13 | }
14 | },
15 | "name": {
16 | "require": {
17 | "must": true,
18 | "invalid": "20005"
19 | }
20 | },
21 | "members": {
22 | "require": {
23 | "must": true,
24 | "invalid": "20005"
25 | },
26 | "typeof": {
27 | "type": "array",
28 | "invalid": "20006"
29 | }
30 | },
31 | "minute": {
32 | "require": {
33 | "must": true,
34 | "invalid": "20005"
35 | },
36 | "size": {
37 | "max": 43200,
38 | "min": 1,
39 | "invalid": "20004"
40 | },
41 | "typeof": {
42 | "type": "number",
43 | "invalid": "20006"
44 | }
45 | }
46 | },
47 | "demotion": {
48 | "_self": {
49 | "require": {
50 | "must": true,
51 | "invalid": "20005"
52 | }
53 | },
54 | "msgs": {
55 | "require": {
56 | "must": true,
57 | "invalid": "20005"
58 | },
59 | "typeof": {
60 | "type": "array",
61 | "invalid": "20006"
62 | }
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/lib/chatroom/whitelist/index.js:
--------------------------------------------------------------------------------
1 | 'user strict';
2 | const User = require('./user');
3 | const Message = require('./message');
4 |
5 | module.exports = {
6 | User: User,
7 | Message: Message
8 | };
--------------------------------------------------------------------------------
/lib/chatroom/whitelist/message-api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_whitelist_add",
4 | "url": "chatroom/whitelist/add",
5 | "params": {
6 | "chatroom": {
7 | "msgs": ["RC:TxtMsg01"]
8 | }
9 | },
10 | "response": {
11 | "success": {
12 | "code": "200",
13 | "msg": "成功返回"
14 | },
15 | "fail": {
16 | "20005": {
17 | "code": "20005",
18 | "msg": "{{name}} 参数为必传项"
19 | },
20 | "20006": {
21 | "code": "20006",
22 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
23 | },
24 | "1004": {
25 | "code": "20000",
26 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
27 | },
28 | "1008": {
29 | "code": "20001",
30 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
31 | }
32 | }
33 | }
34 | },
35 | "remove": {
36 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_whitelist_remove",
37 | "url": "chatroom/whitelist/delete",
38 | "params": {
39 | "chatroom": {
40 | "msgs": ["RC:TxtMsg01"]
41 | }
42 | },
43 | "response": {
44 | "success": {
45 | "code": "200",
46 | "msg": "成功返回"
47 | },
48 | "fail": {
49 | "20005": {
50 | "code": "20005",
51 | "msg": "{{name}} 参数为必传项"
52 | },
53 | "20006": {
54 | "code": "20006",
55 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
56 | },
57 | "1004": {
58 | "code": "20000",
59 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
60 | },
61 | "1008": {
62 | "code": "20001",
63 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
64 | }
65 | }
66 | }
67 | },
68 | "getList": {
69 | "docs": "http://rongcloud.cn/docs/server.html#chatroom_whitelist_query",
70 | "url": "chatroom/whitelist/query",
71 | "params": {},
72 | "response": {
73 | "success": {
74 | "code": "200",
75 | "objectNames": ["RC:TxtMsg"]
76 | },
77 | "fail": {
78 | "20005": {
79 | "code": "20005",
80 | "msg": "{{name}} 参数为必传项"
81 | },
82 | "20006": {
83 | "code": "20006",
84 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
85 | },
86 | "1004": {
87 | "code": "20000",
88 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
89 | },
90 | "1008": {
91 | "code": "20001",
92 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
93 | }
94 | }
95 | }
96 | }
97 | }
--------------------------------------------------------------------------------
/lib/chatroom/whitelist/message.js:
--------------------------------------------------------------------------------
1 | /*
2 | 参考文档:http://rongcloud.cn/docs/server.html#chatroom_whitelist_query
3 | */
4 | const config = require('./message-api.json');
5 | const verify = require('../verify.json');
6 |
7 | const request = require('../../request').request;
8 | const utils = require('../../utils');
9 |
10 | const logger = utils.logger;
11 | const getError = utils.getError;
12 |
13 | const check = utils.check;
14 |
15 | //ChatroomMessageWhiteList
16 | let add = (chatroom) => {
17 | let conf = config.add;
18 |
19 | let error = check({
20 | api: conf,
21 | model: 'chatroom',
22 | data: chatroom,
23 | verify: verify.demotion
24 | });
25 |
26 | if (error) {
27 | return Promise.reject(error);
28 | }
29 |
30 | chatroom = utils.rename(chatroom, {
31 | msgs: 'objectnames'
32 | });
33 |
34 | return request({
35 | url: conf.url,
36 | data: chatroom
37 | }).then(result => {
38 | return result.text;
39 | }).catch(error => {
40 | error = getError({
41 | code: error,
42 | errors: conf.response.fail
43 | });
44 | logger.log({
45 | content: error,
46 | level: 'error',
47 | pos: 'ChatroomUserWhiteList.add'
48 | });
49 | return error;
50 | });
51 | };
52 |
53 | let remove = (chatroom) => {
54 | let conf = config.remove;
55 |
56 | let error = check({
57 | api: conf,
58 | model: 'chatroom',
59 | data: chatroom,
60 | verify: verify.demotion
61 | });
62 |
63 | if (error) {
64 | return Promise.reject(error);
65 | }
66 |
67 | chatroom = utils.rename(chatroom, {
68 | msgs: 'objectnames'
69 | });
70 |
71 | return request({
72 | url: conf.url,
73 | data: chatroom
74 | }).then(result => {
75 | return result.text;
76 | }).catch(error => {
77 | error = getError({
78 | code: error,
79 | errors: conf.response.fail
80 | });
81 | logger.log({
82 | content: error,
83 | level: 'error',
84 | pos: 'ChatroomUserWhiteList.reomve'
85 | });
86 | return error;
87 | });
88 | };
89 |
90 | let getList = () => {
91 | let conf = config.getList;
92 |
93 | return request({
94 | url: conf.url,
95 | data: {}
96 | }).then(result => {
97 | return utils.rename(result.text, {
98 | whitlistMsgType: 'objectNames'
99 | });
100 | }).catch(error => {
101 | error = getError({
102 | code: error,
103 | errors: conf.response.fail
104 | });
105 | logger.log({
106 | content: error,
107 | level: 'error',
108 | pos: 'ChatroomUserWhiteList.getList'
109 | });
110 | return error;
111 | });
112 | };
113 |
114 | module.exports = {
115 | add: add,
116 | remove: remove,
117 | getList: getList
118 | };
119 |
--------------------------------------------------------------------------------
/lib/conversation-type.js:
--------------------------------------------------------------------------------
1 | let Conversation = {
2 | PRIVATE: 1,
3 | DISCUSSION: 2,
4 | GROUP: 3,
5 | CUSTOMER_SERVICE: 5,
6 | SYSTEM: 6,
7 | APP_PUBLIC: 7,
8 | PUBLIC: 8
9 | };
10 |
11 | module.exports = {
12 | Conversation: Conversation
13 | };
--------------------------------------------------------------------------------
/lib/conversation/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "mute": {
3 | "docs": "http://rongcloud.cn/docs/server.html#conversation_notification_set",
4 | "url": "conversation/notification/set",
5 | "params": {
6 | "conversation": {
7 | "type": "1",
8 | "targetId": "UAhIaLkR0",
9 | "userId": "b5NwvIrW8"
10 | }
11 | },
12 | "response":{
13 | "success": {
14 | "code": "200",
15 | "msg": "成功返回"
16 | },
17 | "fail": {
18 | "20003": {
19 | "code": "20003",
20 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
21 | },
22 | "20005": {
23 | "code": "20005",
24 | "msg": "{{name}} 参数为必传项"
25 | },
26 | "20006": {
27 | "code": "20006",
28 | "msg": "user 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
29 | },
30 | "1004": {
31 | "code": "20000",
32 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
33 | },
34 | "1008": {
35 | "code": "20001",
36 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
37 | }
38 | }
39 | }
40 | },
41 | "unmute": {
42 | "docs": "http://rongcloud.cn/docs/server.html#conversation_notification_set",
43 | "url": "conversation/notification/set",
44 | "params": {
45 | "conversation": {
46 | "type": "1",
47 | "targetId": "UAhIaLkR0",
48 | "userId": "b5NwvIrW8"
49 | }
50 | },
51 | "response":{
52 | "success": {
53 | "code": "200",
54 | "msg": "成功返回"
55 | },
56 | "fail": {
57 | "20003": {
58 | "code": "20003",
59 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
60 | },
61 | "20005": {
62 | "code": "20005",
63 | "msg": "{{name}} 参数为必传项"
64 | },
65 | "20006": {
66 | "code": "20006",
67 | "msg": "user 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
68 | },
69 | "1004": {
70 | "code": "20000",
71 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
72 | },
73 | "1008": {
74 | "code": "20001",
75 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
76 | }
77 | }
78 | }
79 | }
80 | }
--------------------------------------------------------------------------------
/lib/conversation/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | 参考文档: http://rongcloud.cn/docs/server.html#conversation_notification_set
3 | */
4 | const config = require('./api.json');
5 | const verify = require('./verify.json');
6 |
7 | const request = require('../request').request;
8 | const utils = require('../utils');
9 |
10 | const _ = utils.underscore;
11 | const logger = utils.logger;
12 |
13 | const Conversation = require('../conversation-type').Conversation;
14 |
15 | const getError = utils.getError;
16 | const check = utils.check;
17 |
18 | let mute = (conversation) => {
19 | let conf = config.mute;
20 | let error = check({
21 | api: conf,
22 | model: 'conversation',
23 | data: conversation,
24 | verify: verify.conversation
25 | });
26 |
27 | if (error) {
28 | return Promise.reject(error);
29 | }
30 |
31 | // 转换会话类型 e.g. PRIVATE => 1 && 设置免打扰标识
32 | let type = conversation.type;
33 | type = Conversation[type];
34 | conversation = _.extend(_.omit(conversation, 'type'), {type: type, isMuted: 1});
35 |
36 | conversation = utils.rename(conversation, {
37 | type: 'conversationType',
38 | userId: 'requestId'
39 | });
40 |
41 | return request({
42 | url: conf.url,
43 | data: conversation
44 | }).then(result => {
45 | return result.text;
46 | }).catch(error => {
47 | error = getError({
48 | code: error,
49 | errors: conf.response.fail
50 | });
51 | logger.log({
52 | content: error,
53 | level: 'error',
54 | pos: 'Conversation.mute'
55 | });
56 | return error;
57 | });
58 | };
59 |
60 | let unmute = (conversation) => {
61 | let conf = config.unmute;
62 | let error = check({
63 | api: conf,
64 | model: 'conversation',
65 | data: conversation,
66 | verify: verify.conversation
67 | });
68 |
69 | if (error) {
70 | return Promise.reject(error);
71 | }
72 |
73 | // 转换会话类型 e.g. PRIVATE => 1 && 设置免打扰标识
74 | let type = conversation.type;
75 | type = Conversation[type];
76 | conversation = _.extend(_.omit(conversation, 'type'), {type: type, isMuted: 0});
77 |
78 | conversation = utils.rename(conversation, {
79 | type: 'conversationType',
80 | userId: 'requestId'
81 | });
82 |
83 | return request({
84 | url: conf.url,
85 | data: conversation
86 | }).then(result => {
87 | return result.text;
88 | }).catch(error => {
89 | error = getError({
90 | code: error,
91 | errors: conf.response.fail
92 | });
93 | logger.log({
94 | content: error,
95 | level: 'error',
96 | pos: 'Conversation.unmute'
97 | });
98 | return error;
99 | });
100 | };
101 |
102 | module.exports = {
103 | mute: mute,
104 | unmute: unmute
105 | };
--------------------------------------------------------------------------------
/lib/conversation/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "conversation": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | },
8 | "typeof": {
9 | "type": "object",
10 | "invalid": "20006"
11 | }
12 | },
13 | "type": {
14 | "require": {
15 | "must": true,
16 | "invalid": "20005"
17 | }
18 | },
19 | "targetId": {
20 | "require": {
21 | "must": true,
22 | "invalid": "20005"
23 | },
24 | "length": {
25 | "max": 64,
26 | "min": 1,
27 | "invalid": "20003"
28 | }
29 | },
30 | "userId": {
31 | "require": {
32 | "must": true,
33 | "invalid": "20005"
34 | }
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/lib/group/mute-all-member/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#all",
4 | "url": "group/ban/add",
5 | "params": {
6 | "group": {
7 | "groups": [{"id": "1001"}]
8 | }
9 | },
10 | "response":{
11 | "success": {
12 | "code": "200",
13 | "msg": "成功返回"
14 | },
15 | "fail": {
16 | "20005": {
17 | "code": "20005",
18 | "msg": "{{name}} 参数为必传项"
19 | },
20 | "20003": {
21 | "code": "20003",
22 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 个"
23 | },
24 | "20006": {
25 | "code": "20006",
26 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
27 | },
28 | "1004": {
29 | "code": "20000",
30 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
31 | },
32 | "1008": {
33 | "code": "20001",
34 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
35 | }
36 | }
37 | }
38 | },
39 | "remove": {
40 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#allremove",
41 | "url": "group/ban/rollback",
42 | "params": {
43 | "group": {
44 | "groups": [{"id": "1001"}]
45 | }
46 | },
47 | "response": {
48 | "success": {
49 | "code": "200",
50 | "msg": "成功返回"
51 | },
52 | "fail": {
53 | "20005": {
54 | "code": "20005",
55 | "msg": "{{name}} 参数为必传项"
56 | },
57 | "20003": {
58 | "code": "20003",
59 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 个"
60 | },
61 | "1004": {
62 | "code": "20000",
63 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
64 | },
65 | "1008": {
66 | "code": "20001",
67 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
68 | }
69 | }
70 | }
71 | },
72 | "getList": {
73 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#allget",
74 | "url": "group/ban/query",
75 | "params": {},
76 | "response":{
77 | "success": {
78 | "code": "200",
79 | "users": [{
80 | "time": "2015-09-25 16:12:38",
81 | "member": {
82 | "id": "2582"
83 | }
84 | }]
85 | },
86 | "fail": {
87 | "1004": {
88 | "code": "20000",
89 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
90 | },
91 | "1008": {
92 | "code": "20001",
93 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
94 | }
95 | }
96 | }
97 | }
98 | }
--------------------------------------------------------------------------------
/lib/group/mute-whitelist/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#allbanadd",
4 | "url": "group/user/ban/whitelist/add",
5 | "params": {
6 | "group": {
7 | "id": "10001",
8 | "members": [{ "id": "aFo990k" }]
9 | }
10 | },
11 | "response":{
12 | "success": {
13 | "code": "200",
14 | "msg": "成功返回"
15 | },
16 | "fail": {
17 | "20005": {
18 | "code": "20005",
19 | "msg": "{{name}} 参数为必传项"
20 | },
21 | "20006": {
22 | "code": "20006",
23 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
24 | },
25 | "1004": {
26 | "code": "20000",
27 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
28 | },
29 | "1008": {
30 | "code": "20001",
31 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
32 | }
33 | }
34 | }
35 | },
36 | "remove": {
37 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#allbanremove",
38 | "url": "group/user/ban/whitelist/rollback",
39 | "params": {
40 | "group": {
41 | "id": "10001",
42 | "members": [{"id": "aFo990k"}]
43 | }
44 | },
45 | "response": {
46 | "success": {
47 | "code": "200",
48 | "msg": "成功返回"
49 | },
50 | "fail": {
51 | "20005": {
52 | "code": "20005",
53 | "msg": "{{name}} 参数为必传项"
54 | },
55 | "20006": {
56 | "code": "20006",
57 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
58 | },
59 | "1004": {
60 | "code": "20000",
61 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
62 | },
63 | "1008": {
64 | "code": "20001",
65 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
66 | }
67 | }
68 | }
69 | },
70 | "getList": {
71 | "docs": "https://docs.rongcloud.cn/v3/views/im/noui/guide/group/manage/groupblock/serverapi.html#allbanget",
72 | "url": "group/user/ban/whitelist/query",
73 | "params": {
74 | "group": {
75 | "id": "10001"
76 | }
77 | },
78 | "response":{
79 | "success": {
80 | "code": "200"
81 | },
82 | "fail": {
83 | "20003": {
84 | "code": "20003",
85 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
86 | },
87 | "20005": {
88 | "code": "20005",
89 | "msg": "{{name}} 参数为必传项"
90 | },
91 | "1004": {
92 | "code": "20000",
93 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
94 | },
95 | "1008": {
96 | "code": "20001",
97 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
98 | }
99 | }
100 | }
101 | }
102 | }
--------------------------------------------------------------------------------
/lib/group/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "group": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | },
8 | "typeof": {
9 | "type": "object",
10 | "invalid": "20006"
11 | }
12 | },
13 | "id": {
14 | "require": {
15 | "must": true,
16 | "invalid": "20005"
17 | },
18 | "length": {
19 | "max": 64,
20 | "min": 1,
21 | "invalid": "20003"
22 | }
23 | },
24 | "members": {
25 | "require": {
26 | "must": true,
27 | "invalid": "20005"
28 | },
29 | "typeof": {
30 | "type": "array",
31 | "invalid": "20006"
32 | },
33 | "length": {
34 | "max": 999999,
35 | "min": 1,
36 | "invalid": "20003"
37 | }
38 | },
39 | "name": {
40 | "require": {
41 | "must": true,
42 | "invalid": "20005"
43 | },
44 | "length": {
45 | "max": 64,
46 | "min": 1,
47 | "invalid": "20003"
48 | }
49 | },
50 | "groups": {
51 | "require": {
52 | "must": true,
53 | "invalid": "20005"
54 | },
55 | "typeof": {
56 | "type": "array",
57 | "invalid": "20006"
58 | },
59 | "length": {
60 | "max": 20,
61 | "min": 1,
62 | "invalid": "20003"
63 | }
64 | }
65 | },
66 | "user":{
67 | "id": {
68 | "require": {
69 | "must": true,
70 | "invalid": "20005"
71 | },
72 | "length": {
73 | "max": 64,
74 | "min": 1,
75 | "invalid": "20003"
76 | }
77 | },
78 | "groups":{
79 | "require": {
80 | "must": true,
81 | "invalid": "20005"
82 | },
83 | "typeof": {
84 | "type": "array",
85 | "invalid": "20006"
86 | }
87 | }
88 | },
89 | "minute": {
90 | "require": {
91 | "must": true,
92 | "invalid": "20005"
93 | },
94 | "size": {
95 | "max": 43200,
96 | "min": 0,
97 | "invalid": "20004"
98 | },
99 | "typeof": {
100 | "type": "number",
101 | "invalid": "20006"
102 | }
103 | },
104 | "member":{
105 | "member": {
106 | "require": {
107 | "must": true,
108 | "invalid": "20005"
109 | }
110 | }
111 | }
112 | }
--------------------------------------------------------------------------------
/lib/message/chatroom/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "send": {
3 | "url": "message/chatroom/publish",
4 | "params": {
5 | "message": {
6 | "senderId": "2191",
7 | "targetId": "2192",
8 | "objectName": "RC:TxtMsg",
9 | "content": {
10 | "content":"hello"
11 | }
12 | }
13 | },
14 | "response": {
15 | "success": {
16 | "code": "200",
17 | "msg": "成功返回"
18 | },
19 | "fail": {
20 | "20002": {
21 | "code": "20002",
22 | "msg": "{{name}} 个数超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
23 | },
24 | "20003": {
25 | "code": "20003",
26 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
27 | },
28 | "20005": {
29 | "code": "20005",
30 | "msg": "{{name}} 参数为必传项"
31 | },
32 | "20006": {
33 | "code": "20006",
34 | "msg": "user 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
35 | },
36 | "1004": {
37 | "code": "20000",
38 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
39 | },
40 | "1008": {
41 | "code": "20001",
42 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
43 | }
44 | }
45 | }
46 | },
47 | "broadcast": {
48 | "url": "message/chatroom/broadcast",
49 | "params": {
50 | "message": {
51 | "senderId": "2191",
52 | "objectName": "RC:TxtMsg",
53 | "content": {
54 | "content":"hello"
55 | }
56 | }
57 | },
58 | "response": {
59 | "success": {
60 | "code": "200",
61 | "msg": "成功返回"
62 | },
63 | "fail": {
64 | "20002": {
65 | "code": "20002",
66 | "msg": "{{name}} 个数超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
67 | },
68 | "20003": {
69 | "code": "20003",
70 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
71 | },
72 | "20005": {
73 | "code": "20005",
74 | "msg": "{{name}} 参数为必传项"
75 | },
76 | "20006": {
77 | "code": "20006",
78 | "msg": "{{name}} 类型不正确,请检查参数类型, 应该为 {{type}} 传入为 {{currentType}} "
79 | },
80 | "1004": {
81 | "code": "20000",
82 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
83 | },
84 | "1008": {
85 | "code": "20001",
86 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
87 | }
88 | }
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/lib/message/chatroom/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('../verify.json');
3 |
4 | const request = require('../../request').request;
5 | const utils = require('../../utils');
6 |
7 | const _ = utils.underscore;
8 | const logger = utils.logger;
9 |
10 | const getError = utils.getError;
11 | const check = utils.check;
12 |
13 | let send = (message) => {
14 | let conf = config.send;
15 |
16 | let content = message.content;
17 | if (_.isObject(content)) {
18 | message.content = JSON.stringify(content);
19 | }
20 |
21 | let error = check({
22 | api: conf,
23 | model: 'message',
24 | data: message,
25 | verify: verify.message
26 | });
27 | if (error) {
28 | return Promise.reject(error);
29 | }
30 |
31 | message = utils.rename(message, {
32 | senderId: 'fromUserId',
33 | targetId: 'toChatroomId'
34 | });
35 |
36 | return request({
37 | url: conf.url,
38 | data: message
39 | }).then(result => {
40 | return result.text;
41 | }).catch(error => {
42 | error = getError({
43 | code: error,
44 | errors: conf.response.fail
45 | });
46 | logger.log({
47 | content: error,
48 | level: 'error',
49 | pos: 'message.Chatrrom.send'
50 | });
51 | return error;
52 | });
53 | };
54 |
55 | let broadcast = (message) => {
56 | let conf = config.broadcast;
57 | message.content = JSON.stringify(message.content);
58 |
59 | let error = check({
60 | api: conf,
61 | model: 'message',
62 | data: message,
63 | verify: _.omit(verify.broadcast, 'targetId')
64 | });
65 | if (error) {
66 | return Promise.reject(error);
67 | }
68 |
69 | message = utils.rename(message, {
70 | senderId: 'fromUserId'
71 | });
72 |
73 | return request({
74 | url: conf.url,
75 | data: message
76 | }).then(result => {
77 | return result.text;
78 | }).catch(error => {
79 | error = getError({
80 | code: error,
81 | errors: conf.response.fail
82 | });
83 | logger.log({
84 | content: error,
85 | level: 'error',
86 | pos: 'message.Chatrrom.broadcast'
87 | });
88 | return error;
89 | });
90 | };
91 |
92 | module.exports = {
93 | send: send,
94 | broadcast: broadcast
95 | };
96 |
--------------------------------------------------------------------------------
/lib/message/discussion/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "send": {
3 | "url": "message/discussion/publish",
4 | "params": {
5 | "message": {
6 | "senderId": "2191",
7 | "targetId": "2192",
8 | "objectName": "RC:TxtMsg",
9 | "content": {
10 | "content":"hello"
11 | }
12 | }
13 | },
14 | "response": {
15 | "success": {
16 | "code": "200",
17 | "msg": "成功返回"
18 | },
19 | "fail": {
20 | "20002": {
21 | "code": "20002",
22 | "msg": "{{name}} 个数超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
23 | },
24 | "20003": {
25 | "code": "20003",
26 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
27 | },
28 | "20005": {
29 | "code": "20005",
30 | "msg": "{{name}} 参数为必传项"
31 | },
32 | "20006": {
33 | "code": "20006",
34 | "msg": "user 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
35 | },
36 | "1004": {
37 | "code": "20000",
38 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
39 | },
40 | "1008": {
41 | "code": "20001",
42 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
43 | }
44 | }
45 | }
46 | },
47 | "recall": {
48 | "docs": "http://rongcloud.cn/docs/server.html#message_recall",
49 | "url": "message/recall",
50 | "params": {
51 | "message": {
52 | "senderId": "fDR2cVpxxR5zSMUNh3yAwh",
53 | "targetId": "MersNRhaKwJkRV9mJR5JXY",
54 | "uId": "5FGT-7VA9-G4DD-4V5P",
55 | "sentTime": "1507778882124"
56 | }
57 | },
58 | "response": {
59 | "success": {
60 | "code": "200",
61 | "msg": "成功返回"
62 | },
63 | "fail": {
64 | "20002": {
65 | "code": "20002",
66 | "msg": "{{name}} 个数超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
67 | },
68 | "20003": {
69 | "code": "20003",
70 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
71 | },
72 | "20005": {
73 | "code": "20005",
74 | "msg": "{{name}} 参数为必传项"
75 | },
76 | "20006": {
77 | "code": "20006",
78 | "msg": "user 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
79 | },
80 | "1004": {
81 | "code": "20000",
82 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
83 | },
84 | "1008": {
85 | "code": "20001",
86 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
87 | }
88 | }
89 | }
90 | }
91 | }
--------------------------------------------------------------------------------
/lib/message/discussion/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('../verify.json');
3 |
4 | const request = require('../../request').request;
5 | const utils = require('../../utils');
6 |
7 | const _ = utils.underscore;
8 | const logger = utils.logger;
9 |
10 | const Conversation = require('../../conversation-type').Conversation
11 |
12 | const getError = utils.getError;
13 | const check = utils.check;
14 |
15 | let send = (message) => {
16 | let conf = config.send;
17 |
18 | let content = message.content;
19 | if (_.isObject(content)) {
20 | message.content = JSON.stringify(content);
21 | }
22 |
23 | let error = check({
24 | api: conf,
25 | model: 'message',
26 | data: message,
27 | verify: verify.message
28 | });
29 | if (error) {
30 | return Promise.reject(error);
31 | }
32 |
33 | message = utils.rename(message, {
34 | senderId: 'fromUserId',
35 | targetId: 'toDiscussionId'
36 | });
37 |
38 | return request({
39 | url: conf.url,
40 | data: message
41 | }).then(result => {
42 | return result.text;
43 | }).catch(error => {
44 | error = getError({
45 | code: error,
46 | errors: conf.response.fail
47 | });
48 | logger.log({
49 | content: error,
50 | level: 'error',
51 | pos: 'message.Discussion.send'
52 | });
53 | return error;
54 | });
55 | };
56 |
57 | let recall = (message) => {
58 | let conf = config.recall;
59 |
60 | let error = check({
61 | api: conf,
62 | model: 'message',
63 | data: message,
64 | verify: verify.recallMsg
65 | });
66 |
67 | if (error) {
68 | return Promise.reject(error);
69 | }
70 |
71 | message.type = Conversation.DISCUSSION;
72 |
73 | message = utils.rename(message, {
74 | senderId: 'fromUserId',
75 | type: 'conversationType',
76 | uId: 'messageUID'
77 | });
78 |
79 | return request({
80 | url: conf.url,
81 | data: message
82 | }).then(result => {
83 | return result.text;
84 | }).catch(error => {
85 | error = getError({
86 | code: error,
87 | errors: conf.response.fail
88 | });
89 | logger.log({
90 | content: error,
91 | level: 'error',
92 | pos: 'message.Discussion.recall'
93 | });
94 | return error;
95 | });
96 | };
97 |
98 | module.exports = {
99 | send: send,
100 | recall: recall
101 | };
102 |
--------------------------------------------------------------------------------
/lib/message/history/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "get": {
3 | "docs": "http://rongcloud.cn/docs/server.html#history_message_download",
4 | "url": "message/history",
5 | "params": {
6 | "message": {
7 | "date": "2017010101"
8 | }
9 | },
10 | "response": {
11 | "success": {
12 | "code": "200",
13 | "msg": "成功返回"
14 | },
15 | "fail": {
16 | "1004": {
17 | "code": "20000",
18 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
19 | },
20 | "1008": {
21 | "code": "20001",
22 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
23 | },
24 | "20005": {
25 | "code": "20005",
26 | "msg": "{{name}} 参数为必传项"
27 | },
28 | "20006": {
29 | "code": "20006",
30 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
31 | }
32 | }
33 | }
34 | },
35 | "remove": {
36 | "docs": "http://rongcloud.cn/docs/server.html#history_message_delete",
37 | "url": "message/history/delete",
38 | "params": {
39 | "message": {
40 | "date": "2017010101"
41 | }
42 | },
43 | "response": {
44 | "success": {
45 | "code": "200",
46 | "msg": "成功返回"
47 | },
48 | "fail": {
49 | "1004": {
50 | "code": "20000",
51 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
52 | },
53 | "1008": {
54 | "code": "20001",
55 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
56 | },
57 | "20005": {
58 | "code": "20005",
59 | "msg": "{{name}} 参数为必传项"
60 | },
61 | "20006": {
62 | "code": "20006",
63 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
64 | }
65 | }
66 | }
67 | }
68 | }
--------------------------------------------------------------------------------
/lib/message/history/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('./verify.json');
3 |
4 | const request = require('../../request').request;
5 | const utils = require('../../utils');
6 |
7 | const logger = utils.logger;
8 | const getError = utils.getError;
9 |
10 | const check = utils.check;
11 |
12 | let get = (message) => {
13 | let conf = config.get;
14 |
15 | let error = check({
16 | api: conf,
17 | model: 'message',
18 | data: message,
19 | verify: verify.message
20 | });
21 | if (error) {
22 | return Promise.reject(error);
23 | }
24 |
25 | return request({
26 | url: conf.url,
27 | data: message
28 | }).then(result => {
29 | return result.text;
30 | }).catch(error => {
31 | error = getError({
32 | code: error,
33 | errors: conf.response.fail
34 | });
35 | logger.log({
36 | content: error,
37 | level: 'error',
38 | pos: 'HistoryMessage.get'
39 | });
40 | return error;
41 | });
42 | };
43 |
44 | let remove = (message) => {
45 | let conf = config.remove;
46 |
47 | let error = check({
48 | api: conf,
49 | model: 'message',
50 | data: message,
51 | verify: verify.message
52 | });
53 | if (error) {
54 | return Promise.reject(error);
55 | }
56 |
57 | return request({
58 | url: conf.url,
59 | data: message
60 | }).then(result => {
61 | return result.text;
62 | }).catch(error => {
63 | error = getError({
64 | code: error,
65 | errors: conf.response.fail
66 | });
67 | logger.log({
68 | content: error,
69 | level: 'error',
70 | pos: 'HistoryMessage.remove'
71 | });
72 | return error;
73 | });
74 | };
75 |
76 | module.exports = {
77 | get: get,
78 | remove: remove
79 | };
--------------------------------------------------------------------------------
/lib/message/history/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "message": {
3 | "date": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | }
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/lib/message/index.js:
--------------------------------------------------------------------------------
1 | const History = require('./history');
2 | const Private = require('./private');
3 | const Chatroom = require('./chatroom');
4 | const Discussion = require('./discussion');
5 | const System = require('./system');
6 | const Group = require('./group');
7 | module.exports = {
8 | History: History,
9 | Private: Private,
10 | Chatroom: Chatroom,
11 | Discussion: Discussion,
12 | System: System,
13 | Group: Group
14 | };
15 |
--------------------------------------------------------------------------------
/lib/push/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "push": {
3 | "docs": "https://www.rongcloud.cn/docs/push_service.html#push",
4 | "url": "push",
5 | "params": {
6 | "content": {
7 | "platform": [
8 | "ios",
9 | "android"
10 | ],
11 | "audience": {
12 | "tag": [
13 | "女",
14 | "年轻"
15 | ]
16 | },
17 | "notification": {
18 | "alert": "push content"
19 | }
20 | }
21 | },
22 | "response": {
23 | "success": {
24 | "code": 200
25 | },
26 | "fail": {
27 | "2007": {
28 | "code": "10001",
29 | "msg": "测试人数超限, 请前往开发者后台 -> 应用 -> App Key -> 测试用户数,增加测试人数, https://developer.rongcloud.cn"
30 | },
31 | "20005": {
32 | "code": "20005",
33 | "msg": "{{name}} 参数为必传项"
34 | },
35 | "20006": {
36 | "code": "20006",
37 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
38 | },
39 | "1004": {
40 | "code": "20000",
41 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
42 | },
43 | "1008": {
44 | "code": "20001",
45 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
46 | }
47 | }
48 | }
49 | },
50 | "message": {
51 | "docs": "https://www.rongcloud.cn/docs/push_service.html#broadcast",
52 | "url": "push",
53 | "params": {
54 | "content": {
55 | "platform": [
56 | "ios",
57 | "android"
58 | ],
59 | "fromUserId": "userId01",
60 | "audience": {
61 | "tag": [
62 | "女",
63 | "年轻"
64 | ]
65 | },
66 | "notification": {
67 | "alert": "push content"
68 | }
69 | }
70 | },
71 | "response": {
72 | "success": {
73 | "code": "200",
74 | "msg": "成功返回"
75 | },
76 | "fail": {
77 | "20005": {
78 | "code": "20005",
79 | "msg": "{{name}} 参数为必传项"
80 | },
81 | "20006": {
82 | "code": "20006",
83 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}} "
84 | },
85 | "1004": {
86 | "code": "20000",
87 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
88 | },
89 | "1008": {
90 | "code": "20001",
91 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
92 | }
93 | }
94 | }
95 | }
96 | }
--------------------------------------------------------------------------------
/lib/push/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('./verify.json');
3 |
4 | const request = require('../request').request;
5 | const utils = require('../utils');
6 |
7 | const rename = utils.rename;
8 | const logger = utils.logger;
9 |
10 | const getError = utils.getError;
11 | const check = utils.check;
12 |
13 | let push = (content) => {
14 | let conf = config.push;
15 | let error = check({
16 | api: conf,
17 | model: 'content',
18 | data: content,
19 | verify: verify.content
20 | });
21 |
22 | if (error) {
23 | return Promise.reject(error);
24 | }
25 |
26 | return request({
27 | url: conf.url,
28 | data: content,
29 | submitType: 'json'
30 | }).then(result => {
31 | return result.text;
32 | }).catch(error => {
33 | error = getError({
34 | code: error,
35 | errors: conf.response.fail
36 | });
37 | logger.log({
38 | content: error,
39 | level: 'error',
40 | pos: 'Push.push'
41 | });
42 | return error;
43 | });
44 | };
45 |
46 | let message = (content) => {
47 | let conf = config.message;
48 | let error = check({
49 | api: conf,
50 | model: 'content',
51 | data: content,
52 | verify: verify.content
53 | });
54 |
55 | if (error) {
56 | return Promise.reject(error);
57 | }
58 |
59 | content = rename(content, {
60 | fromUserId: 'fromuserid'
61 | });
62 | return request({
63 | url: conf.url,
64 | data: content,
65 | submitType: 'json'
66 | }).then(result => {
67 | return result.text;
68 | }).catch(error => {
69 | error = getError({
70 | code: error,
71 | errors: conf.response.fail
72 | });
73 | logger.log({
74 | content: error,
75 | level: 'error',
76 | pos: 'Push.message'
77 | });
78 | return error;
79 | });
80 | };
81 |
82 | module.exports = {
83 | push: push,
84 | message: message
85 | };
--------------------------------------------------------------------------------
/lib/push/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "content": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | },
8 | "typeof": {
9 | "type": "object",
10 | "invalid": "20006"
11 | }
12 | },
13 | "platform": {
14 | "require": {
15 | "must": true,
16 | "invalid": "20005"
17 | },
18 | "typeof": {
19 | "type": "array",
20 | "invalid": "20006"
21 | }
22 | },
23 | "audience": {
24 | "require": {
25 | "must": true,
26 | "invalid": "20005"
27 | },
28 | "typeof": {
29 | "type": "object",
30 | "invalid": "20006"
31 | }
32 | },
33 | "fromUserId": {
34 | "require": {
35 | "must": true,
36 | "invalid": "20005"
37 | },
38 | "typeof": {
39 | "type": "string",
40 | "invalid": "20006"
41 | }
42 | },
43 | "notification": {
44 | "require": {
45 | "must": true,
46 | "invalid": "20005"
47 | },
48 | "typeof": {
49 | "type": "object",
50 | "invalid": "20006"
51 | }
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/lib/rongcloud.js:
--------------------------------------------------------------------------------
1 | const request = require('./request');
2 | const User = require('./user');
3 | const Sensitive = require('./sensitive');
4 | const Message = require('./message');
5 | const Group = require('./group');
6 | const Conversation = require('./conversation');
7 | const Chatroom = require('./chatroom');
8 | const Push = require('./push');
9 |
10 | let modules = {
11 | User: User,
12 | Sensitive: Sensitive,
13 | Message: Message,
14 | Group: Group,
15 | Conversation: Conversation,
16 | Chatroom: Chatroom,
17 | Push: Push
18 | };
19 |
20 | module.exports = function (params) {
21 | request.init(params);
22 | return modules;
23 | };
--------------------------------------------------------------------------------
/lib/sensitive/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('./verify.json');
3 |
4 | const request = require('../request').request;
5 | const utils = require('../utils');
6 |
7 | const logger = utils.logger;
8 |
9 | const getError = utils.getError;
10 | const check = utils.check;
11 |
12 | /*
13 | 参考文档: http://rongcloud.cn/docs/server.html#sensitiveword
14 | */
15 |
16 | let add = (rule) => {
17 | let conf = config.add;
18 | rule.replace = rule.replace || '';
19 | let error = check({
20 | api: conf,
21 | model: 'rule',
22 | data: rule,
23 | verify: verify.rule
24 | });
25 | if (error) {
26 | return Promise.reject(error);
27 | }
28 |
29 | rule = utils.rename(rule, {
30 | keyword: 'word',
31 | replace: 'replaceWord'
32 | });
33 |
34 | // 敏感词屏蔽
35 | if (rule.type === 1) {
36 | delete rule.type
37 | delete rule.replaceWord
38 | }
39 |
40 | return request({
41 | url: conf.url,
42 | data: rule
43 | }).then(result => {
44 | return result.text;
45 | }).catch(error => {
46 | error = getError({
47 | code: error,
48 | errors: conf.response.fail
49 | });
50 | logger.log({
51 | content: error,
52 | level: 'error',
53 | pos: 'sensitive.add'
54 | });
55 | return error;
56 | });
57 | };
58 |
59 | let remove = (sensitive) => {
60 | let conf = config.remove;
61 | let error = check({
62 | api: conf,
63 | model: 'sensitive',
64 | data: sensitive,
65 | verify: verify.sensitive
66 | });
67 | if (error) {
68 | return Promise.reject(error);
69 | }
70 |
71 | sensitive = utils.rename(sensitive, {
72 | keywords: 'words'
73 | });
74 |
75 | return request({
76 | url: conf.url,
77 | data: sensitive
78 | }).then(result => {
79 | return result.text;
80 | }).catch(error => {
81 | error = getError({
82 | code: error,
83 | errors: conf.response.fail
84 | });
85 | logger.log({
86 | content: error,
87 | level: 'error',
88 | pos: 'sensitive.remove'
89 | });
90 | return error;
91 | });
92 | };
93 |
94 | let getList = (sensitive) => {
95 | sensitive = sensitive || {type: 2};
96 |
97 | let conf = config.getList;
98 | let type = sensitive.type;
99 |
100 | return request({
101 | url: conf.url,
102 | data: {
103 | type: type
104 | }
105 | }).then(result => {
106 | return result.text;
107 | }).catch(error => {
108 | error = getError({
109 | code: error,
110 | errors: conf.response.fail
111 | });
112 | logger.log({
113 | content: error,
114 | level: 'error',
115 | pos: 'sensitive.getList'
116 | });
117 | return error;
118 | });
119 | };
120 |
121 | module.exports = {
122 | add: add,
123 | remove: remove,
124 | getList: getList
125 | };
--------------------------------------------------------------------------------
/lib/sensitive/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "rule": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | },
8 | "typeof": {
9 | "type": "object",
10 | "invalid": "20006"
11 | }
12 | },
13 | "keyword": {
14 | "require": {
15 | "must": true,
16 | "invalid": "20005"
17 | },
18 | "length": {
19 | "max": 64,
20 | "min": 1,
21 | "invalid": "20003"
22 | }
23 | },
24 | "replace": {
25 | "length": {
26 | "max": 64,
27 | "min": 0,
28 | "invalid": "20003"
29 | }
30 | }
31 | },
32 | "sensitive": {
33 | "_self": {
34 | "require": {
35 | "must": true,
36 | "invalid": "20005"
37 | },
38 | "typeof": {
39 | "type": "object",
40 | "invalid": "20006"
41 | }
42 | },
43 | "keywords": {
44 | "require": {
45 | "must": true,
46 | "invalid": "20005"
47 | }
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/lib/user/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "register": {
3 | "docs": "http://rongcloud.cn/docs/server.html#user_get_token",
4 | "url": "user/getToken",
5 | "params": {
6 | "user": {
7 | "id": "aFo990k",
8 | "name": "Martin",
9 | "portrait": "http://image.rongcloud.cn/portrait.png"
10 | }
11 | },
12 | "response": {
13 | "success": {
14 | "code": 200,
15 | "userId": "jlk456j5",
16 | "token": "MAo+IhwqEO3+h/DdXg1w6m20V27XsDF2Dx+"
17 | },
18 | "fail": {
19 | "2007": {
20 | "code": "10001",
21 | "msg": "测试人数超限, 请前往开发者后台 -> 应用 -> App Key -> 测试用户数,增加测试人数, https://developer.rongcloud.cn"
22 | },
23 | "20003": {
24 | "code": "20003",
25 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 字节"
26 | },
27 | "20005": {
28 | "code": "20005",
29 | "msg": "{{name}} 参数为必传项"
30 | },
31 | "20006": {
32 | "code": "20006",
33 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
34 | },
35 | "20007": {
36 | "code": "20007",
37 | "msg": "protrait 不是合法地址,请检查 protrait 是否正确"
38 | },
39 | "1004": {
40 | "code": "20000",
41 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
42 | },
43 | "1008": {
44 | "code": "20001",
45 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
46 | }
47 | }
48 | }
49 |
50 | },
51 | "update": {
52 | "docs": "http://rongcloud.cn/docs/server.html#user_refresh",
53 | "url": "user/refresh",
54 | "params": {
55 | "user": {
56 | "id": "aFo990k",
57 | "name": "Martin",
58 | "portrait": "http://image.rongcloud.cn/portrait.png"
59 | }
60 | },
61 | "response": {
62 | "success": {
63 | "code": "200",
64 | "msg": "成功返回"
65 | },
66 | "fail": {
67 | "20003": {
68 | "code": "20003",
69 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}}"
70 | },
71 | "20005": {
72 | "code": "20005",
73 | "msg": "{{name}} 参数为必传项"
74 | },
75 | "20007": {
76 | "code": "20007",
77 | "msg": "protrait 不是合法地址,请检查 protrait 是否正确"
78 | },
79 | "1004": {
80 | "code": "20000",
81 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
82 | },
83 | "1008": {
84 | "code": "20001",
85 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
86 | }
87 | }
88 | }
89 | }
90 | }
--------------------------------------------------------------------------------
/lib/user/block/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "add": {
3 | "docs": "http://rongcloud.cn/docs/server.html#user_block_add",
4 | "url": "user/block",
5 | "params": {
6 | "user": {
7 | "id": "aFo990k",
8 | "minute": 30
9 | }
10 | },
11 | "response": {
12 | "success": {
13 | "code": "200",
14 | "msg": "成功返回"
15 | },
16 | "fail": {
17 | "20004": {
18 | "code": "20004",
19 | "msg": "封禁时间不正确, 当前传入为 {{size}}, 正确范围 1 - 1 * 30 * 24 * 60 分钟"
20 | },
21 | "20006": {
22 | "code": "20006",
23 | "msg": "{{name}} 类型不正确,请检查参数类型,应该为 {{type}} 传入为 {{currentType}}"
24 | },
25 | "20005": {
26 | "code": "20005",
27 | "msg": "{{name}} 参数为必传项"
28 | },
29 | "1004": {
30 | "code": "20000",
31 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
32 | },
33 | "1008": {
34 | "code": "20001",
35 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
36 | }
37 | }
38 | }
39 | },
40 | "remove": {
41 | "docs": "http://rongcloud.cn/docs/server.html#user_unblock",
42 | "url": "user/unblock",
43 | "params": {
44 | "user": {
45 | "id": "aFo990k"
46 | }
47 | },
48 | "response": {
49 | "success": {
50 | "code": "200",
51 | "msg": "成功返回"
52 | },
53 | "fail": {
54 | "20006": {
55 | "code": "20006",
56 | "msg": "minute 参数不正确,请检查参数类型,应该为 number 传入为 {{currentType}}"
57 | },
58 | "20005": {
59 | "code": "20005",
60 | "msg": "{{name}} 参数为必传项"
61 | },
62 | "1004": {
63 | "code": "20000",
64 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
65 | },
66 | "1008": {
67 | "code": "20001",
68 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
69 | }
70 | }
71 | }
72 | },
73 | "getList": {
74 | "docs": "http://rongcloud.cn/docs/server.html#user_block_query",
75 | "url": "user/block/query",
76 | "params": {},
77 | "response": {
78 | "success": {
79 | "code": "200",
80 | "msg": "成功返回"
81 | },
82 | "fail": {
83 | "1004": {
84 | "code": "20000",
85 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
86 | },
87 | "1008": {
88 | "code": "20001",
89 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
90 | }
91 | }
92 | }
93 | }
94 | }
--------------------------------------------------------------------------------
/lib/user/block/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('../verify.json');
3 |
4 | const request = require('../../request').request;
5 | const utils = require('../../utils');
6 |
7 | const _ = utils.underscore;
8 | const rename = utils.rename;
9 | const logger = utils.logger;
10 | const getError = utils.getError;
11 |
12 | const check = utils.check;
13 |
14 | let add = (user) => {
15 | let conf = config.add;
16 |
17 | let error = check({
18 | api: conf,
19 | model: 'user',
20 | data: user,
21 | verify: _.pick(verify.user, 'id', 'minute')
22 | });
23 |
24 | if (error) {
25 | return Promise.reject(error);
26 | }
27 |
28 | user = rename(user, {
29 | id: 'userId'
30 | });
31 |
32 | return request({
33 | url: conf.url,
34 | data: user
35 | }).then(result => {
36 | return result.text;
37 | }).catch(error => {
38 | error = getError({
39 | code: error,
40 | errors: conf.response.fail
41 | });
42 | logger.log({
43 | content: error,
44 | level: 'error',
45 | pos: 'add'
46 | });
47 | return error;
48 | });
49 | };
50 |
51 | let remove = (user) => {
52 | let conf = config.remove;
53 |
54 | let error = check({
55 | api: conf,
56 | model: 'user',
57 | data: user,
58 | verify: {
59 | id: verify.user.id
60 | }
61 | });
62 |
63 | if (error) {
64 | return Promise.reject(error);
65 | }
66 |
67 | user = rename(user, {
68 | id: 'userId'
69 | });
70 |
71 | return request({
72 | url: conf.url,
73 | data: user
74 | }).then(result => {
75 | return result.text;
76 | }).catch(error => {
77 | error = getError({
78 | code: error,
79 | errors: conf.response.fail
80 | });
81 | logger.log({
82 | content: error,
83 | level: 'error',
84 | pos: 'add'
85 | });
86 | return error;
87 | });
88 | };
89 |
90 | let getList = () => {
91 | let conf = config.getList;
92 |
93 | return request({
94 | url: conf.url,
95 | data: {}
96 | }).then(result => {
97 | return result.text;
98 | }).catch(error => {
99 | error = getError({
100 | code: error,
101 | errors: conf.response.fail
102 | });
103 | logger.log({
104 | content: error,
105 | level: 'error',
106 | pos: 'getList'
107 | });
108 | return error;
109 | });
110 | };
111 |
112 | module.exports = {
113 | add: add,
114 | remove: remove,
115 | getList: getList
116 | };
--------------------------------------------------------------------------------
/lib/user/index.js:
--------------------------------------------------------------------------------
1 | const Blacklist = require('./blacklist');
2 | const Block = require('./block');
3 | const Tag = require('./tag');
4 | const OnlineStatus = require('./online-status');
5 |
6 | const config = require('./api.json');
7 | const verify = require('./verify.json');
8 |
9 | const request = require('../request').request;
10 | const utils = require('../utils');
11 |
12 | const rename = utils.rename;
13 | const logger = utils.logger;
14 |
15 | const getError = utils.getError;
16 | const check = utils.check;
17 |
18 | let register = (user) => {
19 | let conf = config.register;
20 | let error = check({
21 | api: conf,
22 | model: 'user',
23 | data: user,
24 | verify: verify.user
25 | });
26 |
27 | if (error) {
28 | return Promise.reject(error);
29 | }
30 |
31 | user = rename(user, {
32 | id: 'userId',
33 | portrait: 'portraitUri'
34 | });
35 |
36 | return request({
37 | url: conf.url,
38 | data: user
39 | }).then(result => {
40 | return result.text;
41 | }).catch(error => {
42 | error = getError({
43 | code: error,
44 | errors: conf.response.fail
45 | });
46 | logger.log({
47 | content: error,
48 | level: 'error',
49 | pos: 'User.register'
50 | });
51 | return error;
52 | });
53 | };
54 |
55 | let update = (user) => {
56 | let conf = config.update;
57 | let error = check({
58 | api: conf,
59 | model: 'user',
60 | data: user,
61 | verify: verify.user
62 | });
63 |
64 | if (error) {
65 | return Promise.reject(error);
66 | }
67 |
68 | user = rename(user, {
69 | id: 'userId',
70 | portrait: 'portraitUri'
71 | });
72 |
73 | return request({
74 | url: conf.url,
75 | data: user
76 | }).then(result => {
77 | return result.text;
78 | }).catch(error => {
79 | error = getError({
80 | code: error,
81 | errors: conf.response.fail
82 | });
83 | logger.log({
84 | content: error,
85 | level: 'error',
86 | pos: 'User.update'
87 | });
88 | return error;
89 | });
90 | };
91 |
92 | module.exports = {
93 | Block: Block,
94 | Blacklist: Blacklist,
95 | Tag: Tag,
96 | OnlineStatus: OnlineStatus,
97 | register: register,
98 | update: update
99 | };
--------------------------------------------------------------------------------
/lib/user/online-status/api.json:
--------------------------------------------------------------------------------
1 | {
2 | "get": {
3 | "docs": "http://rongcloud.cn/docs/server.html#user_check_online",
4 | "url": "user/checkOnline",
5 | "params": {
6 | "user": {
7 | "id": "aFo990k"
8 | }
9 | },
10 | "response": {
11 | "success": {
12 | "code": 200,
13 | "status": 1
14 | },
15 | "fail": {
16 | "20003": {
17 | "code": "20003",
18 | "msg": "{{name}} 长度超限, {{name}} >= {{min}} 且 {{name}} <= {{max}} 单位: 字节"
19 | },
20 | "20005": {
21 | "code": "20005",
22 | "msg": "id 为必传项"
23 | },
24 | "20006": {
25 | "code": "20006",
26 | "msg": "user 类型不正确,请检查参数类型,应该为 Object 传入为 {{currentType}} "
27 | },
28 | "1004": {
29 | "code": "20000",
30 | "msg": "签名错误, 请排查 Appkey、Secret 是否正确"
31 | },
32 | "1008": {
33 | "code": "20001",
34 | "msg": "调用频率超限,每秒钟限制 100 次,调整频率上限请移步至专有云 http://www.rongcloud.cn/pricing#pay"
35 | }
36 | }
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/lib/user/online-status/index.js:
--------------------------------------------------------------------------------
1 | const config = require('./api.json');
2 | const verify = require('../verify.json');
3 |
4 | const request = require('../../request').request;
5 | const utils = require('../../utils');
6 |
7 | const rename = utils.rename;
8 | const logger = utils.logger;
9 | const getError = utils.getError;
10 |
11 | const check = utils.check;
12 |
13 | let get = (user) => {
14 | let conf = config.get;
15 | let error = check({
16 | api: conf,
17 | model: 'user',
18 | data: user,
19 | verify: verify.user
20 | });
21 |
22 | if (error) {
23 | return Promise.reject(error);
24 | }
25 |
26 | user = rename(user, {
27 | id: 'userId'
28 | });
29 |
30 | return request({
31 | url: conf.url,
32 | data: user
33 | }).then(result => {
34 | return result.text;
35 | }).catch(error => {
36 | error = getError({
37 | code: error,
38 | errors: conf.response.fail
39 | });
40 | logger.log({
41 | content: error,
42 | level: 'error',
43 | pos: 'OnlineStatus.get'
44 | });
45 | return error;
46 | });
47 | };
48 |
49 | module.exports = {
50 | get: get
51 | };
--------------------------------------------------------------------------------
/lib/user/verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "user": {
3 | "_self": {
4 | "require": {
5 | "must": true,
6 | "invalid": "20005"
7 | },
8 | "typeof": {
9 | "type": "object",
10 | "invalid": "20006"
11 | }
12 | },
13 | "id": {
14 | "require": {
15 | "must": true,
16 | "invalid": "20005"
17 | }
18 | },
19 | "name": {
20 | "require": {
21 | "must": true,
22 | "invalid": "20005"
23 | },
24 | "length": {
25 | "max": 64,
26 | "min": 1,
27 | "invalid": "20003"
28 | }
29 | },
30 | "portrait": {
31 | "require": {
32 | "must": true,
33 | "invalid": "20005"
34 | },
35 | "length": {
36 | "max": 512,
37 | "min": 1,
38 | "invalid": "20003"
39 | }
40 | },
41 | "minute": {
42 | "require": {
43 | "must": true,
44 | "invalid": "20005"
45 | },
46 | "size": {
47 | "max": 43200,
48 | "min": 1,
49 | "invalid": "20004"
50 | },
51 | "typeof": {
52 | "type": "number",
53 | "invalid": "20006"
54 | }
55 | },
56 | "blacklist": {
57 | "require": {
58 | "must": true,
59 | "invalid": "20005"
60 | },
61 | "typeof": {
62 | "type": "array",
63 | "invalid": "20006"
64 | }
65 | },
66 | "tags": {
67 | "require": {
68 | "must": true,
69 | "invalid": "20005"
70 | },
71 | "typeof": {
72 | "type": "array",
73 | "invalid": "20006"
74 | }
75 | },
76 | "users": {
77 | "require": {
78 | "must": true,
79 | "invalid": "20005"
80 | },
81 | "typeof": {
82 | "type": "array",
83 | "invalid": "20006"
84 | }
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rongcloud-sdk",
3 | "version": "3.1.1",
4 | "description": "The Server SDK of RongCloud",
5 | "main": "index.js",
6 | "scripts": {
7 | "eslint": "eslint .",
8 | "test": "istanbul cover node_modules/jasmine/bin/jasmine.js",
9 | "precommit": "npm run eslint"
10 | },
11 | "precommit": [
12 | "npm run precommit"
13 | ],
14 | "repository": {
15 | "type": "git",
16 | "url": "https://github.com/rongcloud/server-sdk-nodejs"
17 | },
18 | "keywords": [
19 | "mobile",
20 | "im",
21 | "server",
22 | "sdk"
23 | ],
24 | "author": "RongCloud",
25 | "contributors": [
26 | {
27 | "name": "yuhongda",
28 | "email": "yuhongda0315@163.com"
29 | }
30 | ],
31 | "license": "MIT",
32 | "bugs": {
33 | "url": "https://github.com/rongcloud/server-sdk-nodejs/issues"
34 | },
35 | "homepage": "http://rongcloud.cn",
36 | "dependencies": {
37 | "superagent": "^3.8.1",
38 | "underscore": "^1.8.3"
39 | },
40 | "devDependencies": {
41 | "eslint": "^5.9.0",
42 | "istanbul": "^0.4.5",
43 | "jasmine": "^2.8.0",
44 | "precommit": "^1.2.2"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/report-0507.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rongcloud/server-sdk-nodejs/e9e9f7a088276791679fe3c150c7eafbe93a4e52/report-0507.png
--------------------------------------------------------------------------------
/spec/conversationSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Conversation', () => {
3 | let _golbal, Conversation;
4 | beforeAll(function() {
5 | _golbal = this;
6 | Conversation = _golbal.rongSDK.Conversation;
7 | });
8 | const config = require('../lib/conversation/api.json');
9 |
10 | describe('mute', () => {
11 | let conf = config.mute;
12 |
13 | let response = conf.response;
14 | let success = response.success.code;
15 |
16 | it('参数无效', () => {
17 | let conversation = _golbal.conversation;
18 | return Conversation.mute({}).catch(error => {
19 | expect(error).not.toBeUndefined();
20 | });
21 | });
22 |
23 | it('Success', () => {
24 | let conversation = _golbal.conversation;
25 | return Conversation.mute(conversation.mute).then(result => {
26 | expect(result.code).toEqual(Number(success));
27 | });
28 | });
29 |
30 | it('Fail', () => {
31 | let conversation = _golbal.conversation.mute;
32 | conversation.type = 'PP';
33 | return Conversation.mute(conversation).catch(error => {
34 | expect(error).not.toBeUndefined();
35 | });
36 | });
37 | });
38 |
39 | describe('unmute', () => {
40 | let conf = config.unmute;
41 |
42 | let response = conf.response;
43 | let success = response.success.code;
44 |
45 | it('参数无效', () => {
46 | let conversation = _golbal.conversation;
47 | return Conversation.unmute({}).catch(error => {
48 | expect(error).not.toBeUndefined();
49 | });
50 | });
51 |
52 | it('Success', () => {
53 | let conversation = _golbal.conversation;
54 | return Conversation.unmute(conversation.unmute).then(result => {
55 | expect(result.code).toEqual(Number(success));
56 | });
57 | });
58 |
59 | it('Fail', () => {
60 | let conversation = _golbal.conversation.unmute;
61 | conversation.type = 'PP';
62 | return Conversation.unmute(conversation).catch(error => {
63 | expect(error).not.toBeUndefined();
64 | });
65 | });
66 | });
67 | });
--------------------------------------------------------------------------------
/spec/message/chatroomSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, Chatroom;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | Chatroom = Message.Chatroom;
9 | });
10 |
11 | const config = require('../../lib/message/chatroom/api.json');
12 |
13 | describe('Chatroom.send', () => {
14 | let conf = config.send;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failMessage;
21 | return Chatroom.send(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | let message = _golbal.message;
28 | return Chatroom.send({}).catch(error => {
29 | expect(error).not.toBeUndefined();
30 | });
31 | });
32 |
33 | it('success', () => {
34 | let message = _golbal.message;
35 | return Chatroom.send(message).then(result => {
36 | expect(result.code).toEqual(Number(success));
37 | });
38 | });
39 | });
40 |
41 | describe('Chatroom.broadcast', () => {
42 | let conf = config.broadcast;
43 |
44 | let response = conf.response;
45 | let success = response.success.code;
46 |
47 | it('Fail', () => {
48 | let message = _golbal.failMessage;
49 | return Chatroom.broadcast(message).catch(error => {
50 | expect(error).not.toBeUndefined();
51 | });
52 | });
53 |
54 | it('参数无效', () => {
55 | let message = _golbal.message;
56 | return Chatroom.broadcast({}).catch(error => {
57 | expect(error).not.toBeUndefined();
58 | });
59 | });
60 | // 需开通专属
61 | // it('success', () => {
62 | // let message = _golbal.broadcastMessage;
63 | // return Chatroom.broadcast(message).then(result => {
64 | // expect(result.code).toEqual(Number(success));
65 | // });
66 | // });
67 | });
68 | });
--------------------------------------------------------------------------------
/spec/message/discussionSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, Discussion;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | Discussion = Message.Discussion;
9 | });
10 |
11 | const config = require('../../lib/message/discussion/api.json');
12 |
13 | describe('Discussion.send', () => {
14 | let conf = config.send;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failMessage;
21 | return Discussion.send(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | let message = _golbal.message;
28 | return Discussion.send({}).catch(error => {
29 | expect(error).not.toBeUndefined();
30 | });
31 | });
32 |
33 | it('success', () => {
34 | let message = _golbal.message;
35 | return Discussion.send(message).then(result => {
36 | expect(result.code).toEqual(Number(success));
37 | });
38 | });
39 | });
40 |
41 | describe('Discussion.recall', () => {
42 | let conf = config.recall;
43 |
44 | let response = conf.response;
45 | let success = response.success.code;
46 |
47 | it('Fail', () => {
48 | let message = _golbal.failRecallMessage;
49 | return Discussion.recall(message).catch(error => {
50 | expect(error).not.toBeUndefined();
51 | });
52 | });
53 |
54 | it('参数无效', () => {
55 | return Discussion.recall({}).catch(error => {
56 | expect(error).not.toBeUndefined();
57 | });
58 | });
59 |
60 | it('撤回消息', () => {
61 | let message = _golbal.recallMessage;
62 | return Discussion.recall(message).then(result => {
63 | expect(result.code).toEqual(Number(success));
64 | });
65 | });
66 | });
67 | });
--------------------------------------------------------------------------------
/spec/message/groupSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, Group;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | Group = Message.Group;
9 | });
10 |
11 | const config = require('../../lib/message/group/api.json');
12 |
13 | describe('Group.send', () => {
14 | let conf = config.send;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failMessage;
21 | return Group.send(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | let message = _golbal.message;
28 | return Group.send({}).catch(error => {
29 | expect(error).not.toBeUndefined();
30 | });
31 | });
32 |
33 | it('success', () => {
34 | let message = _golbal.message;
35 | return Group.send(message).then(result => {
36 | expect(result.code).toEqual(Number(success));
37 | });
38 | });
39 | });
40 |
41 | describe('Group.recall', () => {
42 | let conf = config.recall;
43 |
44 | let response = conf.response;
45 | let success = response.success.code;
46 |
47 | it('Fail', () => {
48 | let message = _golbal.failRecallMessage;
49 | return Group.recall(message).catch(error => {
50 | expect(error).not.toBeUndefined();
51 | });
52 | });
53 |
54 | it('参数无效', () => {
55 | return Group.recall({}).catch(error => {
56 | expect(error).not.toBeUndefined();
57 | });
58 | });
59 |
60 | it('撤回消息', () => {
61 | let message = _golbal.recallMessage;
62 | return Group.recall(message).then(result => {
63 | expect(result.code).toEqual(Number(success));
64 | });
65 | });
66 | });
67 |
68 | describe('Group.sendMention', () => {
69 | let conf = config.sendMention;
70 |
71 | let response = conf.response;
72 | let success = response.success.code;
73 |
74 | it('Fail', () => {
75 | let message = _golbal.failMessage;
76 | return Group.sendMention(message).catch(error => {
77 | expect(error).not.toBeUndefined();
78 | });
79 | });
80 |
81 | it('参数无效', () => {
82 | return Group.sendMention({}).catch(error => {
83 | expect(error).not.toBeUndefined();
84 | });
85 | });
86 |
87 | it('success', () => {
88 | let message = _golbal.groupMentionMessage;
89 | return Group.sendMention(message).then(result => {
90 | expect(result.code).toEqual(Number(success));
91 | });
92 | });
93 | });
94 | });
--------------------------------------------------------------------------------
/spec/message/historySpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, History;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | History = Message.History;
9 | });
10 |
11 | const config = require('../../lib/message/history/api.json');
12 |
13 | describe('History.get', () => {
14 | let conf = config.get;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failHistoryMessage;
21 | return History.get(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | return History.get({}).catch(error => {
28 | expect(error).not.toBeUndefined();
29 | });
30 | });
31 |
32 | it('获取历史消息文件地址', () => {
33 | let message = _golbal.historyMessage;
34 | return History.get(message).then(result => {
35 | expect(result.code).toEqual(Number(success));
36 | });
37 | });
38 | });
39 |
40 | describe('History.remove', () => {
41 | let conf = config.remove;
42 |
43 | let response = conf.response;
44 | let success = response.success.code;
45 |
46 | it('Fail', () => {
47 | let message = _golbal.failHistoryMessage;
48 | return History.remove(message).catch(error => {
49 | expect(error).not.toBeUndefined();
50 | });
51 | });
52 |
53 | it('参数无效', () => {
54 | return History.remove({}).catch(error => {
55 | expect(error).not.toBeUndefined();
56 | });
57 | });
58 |
59 | it('删除历史消息文件地址', () => {
60 | let message = _golbal.historyMessage;
61 | return History.remove(message).then(result => {
62 | expect(result).not.toBeUndefined();
63 | });
64 | });
65 | });
66 | });
--------------------------------------------------------------------------------
/spec/message/privateSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, Private;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | Private = Message.Private;
9 | });
10 |
11 | const config = require('../../lib/message/private/api.json');
12 |
13 | describe('Private.send', () => {
14 | let conf = config.send;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failMessage;
21 | return Private.send(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | let message = _golbal.message;
28 | return Private.send({}).catch(error => {
29 | expect(error).not.toBeUndefined();
30 | });
31 | });
32 |
33 | it('success', () => {
34 | let message = _golbal.message;
35 | return Private.send(message).then(result => {
36 | expect(result.code).toEqual(Number(success));
37 | });
38 | });
39 | });
40 |
41 | describe('Private.recall', () => {
42 | let conf = config.recall;
43 |
44 | let response = conf.response;
45 | let success = response.success.code;
46 |
47 | it('Fail', () => {
48 | let message = _golbal.failRecallMessage;
49 | return Private.recall(message).catch(error => {
50 | expect(error).not.toBeUndefined();
51 | });
52 | });
53 |
54 | it('参数无效', () => {
55 | return Private.recall({}).catch(error => {
56 | expect(error).not.toBeUndefined();
57 | });
58 | });
59 |
60 | it('撤回消息', () => {
61 | let message = _golbal.recallMessage;
62 | return Private.recall(message).then(result => {
63 | expect(result.code).toEqual(Number(success));
64 | });
65 | });
66 | });
67 |
68 | describe('Private.sendTemplate', () => {
69 | let conf = config.sendTemplate;
70 |
71 | let response = conf.response;
72 | let success = response.success.code;
73 |
74 | it('参数无效', () => {
75 | return Private.sendTemplate({}).catch(error => {
76 | expect(error).not.toBeUndefined();
77 | });
78 | });
79 |
80 | it('模版消息', () => {
81 | let message = _golbal.templateMessage;
82 | return Private.sendTemplate(message).then(result => {
83 | expect(result.code).toEqual(Number(success));
84 | });
85 | });
86 | });
87 | });
--------------------------------------------------------------------------------
/spec/message/systemSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Message', () => {
3 | let _golbal, Message, System;
4 |
5 | beforeAll(function() {
6 | _golbal = this;
7 | Message = _golbal.rongSDK.Message;
8 | System = Message.System;
9 | });
10 |
11 | const config = require('../../lib/message/system/api.json');
12 |
13 | describe('System.send', () => {
14 | let conf = config.send;
15 |
16 | let response = conf.response;
17 | let success = response.success.code;
18 |
19 | it('Fail', () => {
20 | let message = _golbal.failMessage;
21 | return System.send(message).catch(error => {
22 | expect(error).not.toBeUndefined();
23 | });
24 | });
25 |
26 | it('参数无效', () => {
27 | let message = _golbal.message;
28 | return System.send({}).catch(error => {
29 | expect(error).not.toBeUndefined();
30 | });
31 | });
32 |
33 | it('success', () => {
34 | let message = _golbal.message;
35 | return System.send(message).then(result => {
36 | expect(result.code).toEqual(Number(success));
37 | });
38 | });
39 | });
40 |
41 | describe('System.sendTemplate', () => {
42 | let conf = config.sendTemplate;
43 |
44 | let response = conf.response;
45 | let success = response.success.code;
46 |
47 | it('参数无效', () => {
48 | return System.sendTemplate({}).catch(error => {
49 | expect(error).not.toBeUndefined();
50 | });
51 | });
52 |
53 | it('模版消息', () => {
54 | let message = _golbal.templateMessage;
55 | return System.sendTemplate(message).then(result => {
56 | expect(result.code).toEqual(Number(success));
57 | });
58 | });
59 | });
60 |
61 |
62 | describe('System.broadcast', () => {
63 | let conf = config.broadcast;
64 |
65 | let response = conf.response;
66 | let success = response.success.code;
67 |
68 | it('Fail', () => {
69 | let message = _golbal.failMessage;
70 | return System.broadcast(message).catch(error => {
71 | expect(error).not.toBeUndefined();
72 | });
73 | });
74 |
75 | it('参数无效', () => {
76 | let message = _golbal.message;
77 | return System.broadcast({}).catch(error => {
78 | expect(error).not.toBeUndefined();
79 | });
80 | });
81 |
82 | it('success', () => {
83 | let message = _golbal.broadcastMessage;
84 | return System.broadcast(message).then(result => {
85 | expect(result.code).toEqual(Number(success));
86 | });
87 | });
88 | });
89 | });
--------------------------------------------------------------------------------
/spec/pushSpec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | describe('Push', () => {
3 | let _golbal, Push;
4 | beforeAll(function() {
5 | _golbal = this;
6 | Push = _golbal.rongSDK.Push;
7 | });
8 | const config = require('../lib/push/api.json');
9 |
10 | describe('push', () => {
11 | let conf = config.push;
12 | let response = conf.response;
13 | let success = response.success.code;
14 |
15 | it('Success', () => {
16 | let pushContent = _golbal.pushContent;
17 | return Push.push(pushContent).then(result => {
18 | expect(result.code).toEqual(Number(success));
19 | });
20 | });
21 |
22 | it('Fail', () => {
23 | return Push.push({}).catch(error => {
24 | expect(error).not.toBeUndefined();
25 | });
26 | });
27 | });
28 |
29 | describe('message', () => {
30 | let conf = config.message;
31 | let response = conf.response;
32 | let success = response.success.code;
33 |
34 | it('Success', () => {
35 | let pushMessage = _golbal.pushMessage;
36 | return Push.message(pushMessage).then(result => {
37 | expect(result.code).toEqual(Number(success));
38 | });
39 | });
40 |
41 | it('Fail', () => {
42 | return Push.message({}).catch(error => {
43 | expect(error).not.toBeUndefined();
44 | });
45 | });
46 | });
47 | });
--------------------------------------------------------------------------------
/spec/support/jasmine.json:
--------------------------------------------------------------------------------
1 | {
2 | "spec_dir": "spec",
3 | "spec_files": [
4 | "**/*Spec.js"
5 | ],
6 | "helpers": [
7 | "helpers/**/*.js"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------