Skip to content

Commit

Permalink
build: release v0.4.0 (#174)
Browse files Browse the repository at this point in the history
添加新 API #173

---------

Co-authored-by: hongyiheng <[email protected]>
  • Loading branch information
yanglbme and hongyiheng authored Jan 10, 2024
1 parent 2cc0426 commit f3bd77d
Show file tree
Hide file tree
Showing 82 changed files with 6,006 additions and 43 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ If you're using Maven, just add the following dependency in `pom.xml`.
<dependency>
<groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId>
<version>0.3.48</version>
<version>0.4.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<dependency>
<groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId>
<version>0.3.48</version>
<version>0.4.0</version>
</dependency>
```

Expand Down
1 change: 1 addition & 0 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ module.exports = {
'/guide/operation_2.md',
'/guide/robot.md',
'/guide/audit.md',
'/guide/official_account.md'
],
},
],
Expand Down
2 changes: 2 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,7 @@ features:
details: 创建、删除、拉取机器人等
- title: 内容审核
details: 本地审核、云端审核等
- title: 公众号管理
details: 创建、销毁、修改公众号等
footer: Apache-2.0 Licensed | Copyright © 2021-present Doocs
---
2 changes: 1 addition & 1 deletion docs/guide/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 介绍

本文档基于腾讯云 IM Server SDK Java <Badge type="tip" text="v0.3.48" vertical="top" /> 编写。
本文档基于腾讯云 IM Server SDK Java <Badge type="tip" text="v0.4.0" vertical="top" /> 编写。

## 前提条件

Expand Down
48 changes: 48 additions & 0 deletions docs/guide/group.md
Original file line number Diff line number Diff line change
Expand Up @@ -1370,6 +1370,7 @@ App 管理员可以通过该接口获取群计数器。
::: warning

- 该功能仅对旗舰版客户开放,需 [购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17182)
:::

使用示例:

Expand All @@ -1388,6 +1389,7 @@ App 管理员可以通过该接口更新(设置、递增、递减)群计数
::: warning

- 该功能仅对旗舰版客户开放,需 [购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17182)
:::

使用示例:

Expand All @@ -1413,6 +1415,7 @@ App 管理员可以通过该接口删除群计数器。
::: warning

- 该功能仅对旗舰版客户开放,需 [购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17182)
:::

使用示例:

Expand All @@ -1423,3 +1426,48 @@ DeleteGroupCounterRequest request = DeleteGroupCounterRequest.builder()

DeleteGroupCounterResult result = client.group.deleteGroupCounter(request);
```

## 设置/取消直播群管理员

App 管理员可以为直播群设置和取消管理员,当设置管理员时,被设置的账号可以不需要在直播群里,被设置为管理员之后,该账号即使离开直播群再重新进群也仍然是管理员。需要取消管理员身份时,需要调用本接口取消该用户的管理员身份。该功能需旗舰版,并且在 IM 控制台“群功能配置”中开通“直播群在线成员列表”功能。

使用示例:

```java
ModifyAdminRequest request = ModifyAdminRequest.builder()
.groupId("MyFirstGroup")
.commandType(1)
.adminAccount(Arrays.asList("test1", "bingo"))
.build();

ModifyAdminResult result = client.group.modifyAdmin(request);
```

## 获取直播群管理员列表

App 管理员可以根据群组 ID 获取直播群管理员列表。该功能仅限旗舰版用户在 IM 控制台“群功能配置”中开启“直播群在线成员列表”后方可使用。

使用示例:

```java
GetAdminListRequest request = GetAdminListRequest.builder()
.groupId("MyFirstGroup")
.build();

GetAdminListResult result = client.group.getAdminList(request);
```

## 查询用户是否在直播群内

App 管理员可以根据群组 ID 查询一批用户是否在直播群内。该功能需旗舰版,并且在 IM 控制台“群功能配置”中开通“直播群在线成员列表”功能。

使用示例:

```java
CheckMembersRequest request = CheckMembersRequest.builder()
.groupId("MyFirstGroup")
.memberAccount(Arrays.asList("test1", "bingo"))
.build();

CheckMembersResult result = client.group.checkMembers(request);
```
35 changes: 35 additions & 0 deletions docs/guide/message.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,38 @@ SetKeyValuesRequest request = SetKeyValuesRequest.builder()

SetKeyValuesResult result = client.message.setKeyValues(request);
```

## 单向删除单聊历史消息

- App 管理员调用该接口单向删除一个单聊会话的多条消息。
- 只能以消息的发送方或接收方的身份去删除单聊会话的历史消息。
- 只能单向删除(以会话其中一方的身份去删除某条消息后,自己看不到这条消息,会话的对方仍然可以看到这条消息)

使用示例:

```java
DeleteC2cMsgRambleRequest request = DeleteC2cMsgRambleRequest.builder()
.operatorAccount("test1")
.peerAccount("test2")
.msgKeyList(Collections.singletonList("1353691732_123_1653995506"))
.build();

DeleteC2cMsgRambleResult result = client.message.deleteC2cMsgRamble(request);
```

## 清空群聊历史消息

该 API 接口的作用是清空群聊中用户发送的历史消息。

此接口通过打标记实现 SDK 无法拉取的效果,并没有真的执行删除操作,Admin 用户仍然可以通过“拉取群聊历史消息”接口拉取已清空的历史消息。

使用示例:

```java
ClearGroupMsgRequest request = ClearGroupMsgRequest.builder()
.groupId("test_group")
.msgSeq(123L)
.build();

ClearGroupMsgResult result = client.message.clearGroupMsg(request);
```
187 changes: 187 additions & 0 deletions docs/guide/official_account.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
# 公众号管理

## 创建公众号

App 管理员可以通过该接口创建公众号。

使用示例:

```java
CreateOfficialAccountRequest request = new CreateOfficialAccountRequest();
request.setOwnerAccount("test");
request.setName("test_official_account");

CreateOfficialAccountResult result = client.officialAccount.createOfficialAccount(request);
```

## 销毁公众号

App 管理员可以通过该接口销毁公众号。

使用示例:

```java
DestroyOfficialAccountRequest request = new DestroyOfficialAccountRequest();
request.setOfficialAccount("test_official_account_user_id");

DestroyOfficialAccountResult result = client.officialAccount.destroyOfficialAccount(request);
```

## 修改公众号资料

App 管理员可以通过该接口修改公众号的相关信息,如公众号的名称、头像、简介等

使用示例:

```java
ModifyOfficialAccountBaseInfoRequest request = new ModifyOfficialAccountBaseInfoRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setName("test_official_account2");

ModifyOfficialAccountBaseInfoResult result = client.officialAccount.modifyOfficialAccountBaseInfo(request);
```

## 获取公众号详细资料

App 管理员可以通过该接口获取公众号的相关资料信息。

使用示例:

```java
GetOfficialAccountInfoRequest request = new GetOfficialAccountInfoRequest();
request.setOfficialAccountIdList(Collections.singletonList(new OfficialAccountItem("test_official_account_user_id")));

GetOfficialAccountInfoResult result = client.officialAccount.getOfficialAccountInfo(request);
```

## 获取公众号的订阅成员资料

App 管理员可以通过该接口获取订阅某个公众号的所有用户信息.

使用示例:

```java
GetSubscriberInfoRequest request = new GetSubscriberInfoRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setLimit(10);
request.setNext("");

GetSubscriberInfoResult result = client.officialAccount.getSubscriberInfo(request);
```

## 添加订阅者

App 管理员可以通过该接口使用户订阅某个公众号,成为公众号的订阅成员。

使用示例:

```java
AddSubscriberRequest request = new AddSubscriberRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setSubscriberList(Collections.singletonList(new OfficialAccountItem("test_subscriber_id")));

AddSubscriberResult result = client.officialAccount.addSubscriber(request);
```

## 删除订阅者

App 管理员可以通过该接口使用户取消订阅某个公众号,从公众号的订阅成员中移除。

使用示例:

```java
DeleteSubscriberRequest request = new DeleteSubscriberRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setSubscriberToDelAccount(Collections.singletonList("test_subscriber_id"));

DeleteSubscriberResult result = client.officialAccount.deleteSubscriber(request);
```

## 修改订阅者资料

App 管理员可以通过该接口修改订阅者的相关资料信息。

使用示例:

```java
ModifySubscriberInfoRequest request = new ModifySubscriberInfoRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setSubscriberAccount("test_subscriber_id");
request.setCustomString("test_custom_string");

ModifySubscriberInfoResult result = client.officialAccount.modifySubscriberInfo(request);
```

## 获取订阅的公众号列表

App 管理员可以通过该接口获取用户订阅的所有公众号列表信息。

使用示例:

```java
GetSubscribedOfficialAccountListRequest request = new GetSubscribedOfficialAccountListRequest();
request.setSubscriberAccount("test_subscriber_id");

GetSubscribedOfficialAccountListResult result = client.officialAccount.getSubscribedOfficialAccountList(request);
```

## 公众号用户发送广播消息

- App 管理员可以通过该接口向关注公众号的所有订阅者发送普通消息。
- 单个公众号的发送频率上限为1条/秒,每小时最多可发布2条广播消息。
- 如果5分钟内两条消息的内容相同,后面的消息将被当做重复消息而丢弃。


使用示例:

```java
TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
List<TIMMsgElement> msgBody = Collections.singletonList(msg);
SendOfficialAccountMsgRequest request = SendOfficialAccountMsgRequest.builder()
.officialAccount("test_official_account_user_id")
.random(123)
.msgBody(msgBody)
.build();

SendOfficialAccountMsgResult result = client.officialAccount.sendOfficialAccountMsg(request);
```

## 拉取公众号用户历史消息

- 即时通信 IM 的公众号消息是按 Seq 排序的,按照 server 收到公众号消息的顺序分配 Seq,先发的公众号消息 Seq 小,后发的 Seq 大。
- 即时通信 IM 会给每条公众号消息生成一个 MsgKey,格式为 "Seq_1_ServerTime"。
- 如果用户想拉取一个公众号的全量消息,需要填写消息的 LastMsgKey,首次拉取时不用填拉取 LastMsgKey,Server 会自动返回最新的消息,以后拉取时拉取 LastMsgKey 填上次请求返回 LastMsgKey。
- 如果返回消息的 IsPlaceMsg 为1,表示这个 Seq 的消息或者过期、或者存储失败、或者被删除了。


使用示例:

```java
OfficialAccountMsgGetSimpleRequest request = new OfficialAccountMsgGetSimpleRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setLastMsgKey("msg_key");
request.setReqMsgNumber(10);
request.setWithRecalledMsg(1);

OfficialAccountMsgGetSimpleResult result = client.officialAccount.msgGetSimple(request);
```

## 撤回公众号消息

- 管理员撤回公众号消息。
- 该接口可以撤回所有漫游有效期内的公众号消息,包括客户端发出的公众号消息,由 REST API 接口发出的公众号消息。
- 若需要撤回由客户端发出的公众号消息,您可以开通 发公众号消息之后回调 ,通过该回调接口记录每条公众号消息的 MsgKey,然后填在本接口的 MsgKeyList 参数里进行撤回。您也可以通过 拉取公众号用户历史消息 查询出待撤回的公众号消息的相关信息后,使用本接口进行撤回。
- 若需要撤回由 REST API 公众号用户发送广播消息 接口发出的公众号消息,需要记录这些接口回包里的 MsgKey 字段以进行撤回。
- 调用该接口撤回消息后,该条消息的接收方的客户端的本地缓存都会被撤回。
- 该接口可撤回的公众号消息没有时间限制,即可以撤回任何时间的公众号消息,但是公众号消息的漫游时间需要在有效期内。


使用示例:

```java
OfficialAccountMsgRecallRequest request = new OfficialAccountMsgRecallRequest();
request.setOfficialAccount("test_official_account_user_id");
request.setMsgKeyList(Collections.singletonList("msg_key"));

OfficialAccountMsgRecallResult result = client.officialAccount.msgRecall(request);
```
4 changes: 2 additions & 2 deletions docs/guide/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
<dependency>
<groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId>
<version>0.3.48</version>
<version>0.4.0</version>
</dependency>
```

### Gradle

```gradle
implementation group: 'io.github.doocs', name: 'im-server-sdk-java', version: '0.3.48'
implementation group: 'io.github.doocs', name: 'im-server-sdk-java', version: '0.4.0'
```

### 下载 JAR
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qcloud-im-server-sdk-java",
"version": "0.3.48",
"version": "0.4.0",
"description": "腾讯云 IM 服务端 SDK API 文档 Java 版",
"main": "index.js",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId>
<version>0.3.48</version>
<version>0.4.0</version>
<packaging>jar</packaging>

<name>qcloud-im-server-sdk-java</name>
Expand Down
Loading

0 comments on commit f3bd77d

Please sign in to comment.