145 行
2.7 KiB
Markdown
145 行
2.7 KiB
Markdown
|
|
# Java Server SDK
|
|||
|
|
|
|||
|
|
XuqmGroup 服务端 Java SDK,提供 IM 消息发送、群管理、Push 推送等能力。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 安装
|
|||
|
|
|
|||
|
|
Maven 在 `pom.xml` 中添加:
|
|||
|
|
|
|||
|
|
```xml
|
|||
|
|
<repository>
|
|||
|
|
<id>nexus-xuqm</id>
|
|||
|
|
<url>https://nexus.xuqinmin.com/repository/android/</url>
|
|||
|
|
</repository>
|
|||
|
|
|
|||
|
|
<dependency>
|
|||
|
|
<groupId>com.xuqm</groupId>
|
|||
|
|
<artifactId>xuqm-server-sdk</artifactId>
|
|||
|
|
<version>0.1.0</version>
|
|||
|
|
</dependency>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Gradle:
|
|||
|
|
|
|||
|
|
```kotlin
|
|||
|
|
repositories {
|
|||
|
|
maven { url = uri("https://nexus.xuqinmin.com/repository/android/") }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
dependencies {
|
|||
|
|
implementation("com.xuqm:xuqm-server-sdk:0.1.0")
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 初始化
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.xuqm.sdk.server.XuqmServerClient;
|
|||
|
|
import com.xuqm.sdk.server.XuqmServerConfig;
|
|||
|
|
|
|||
|
|
XuqmServerClient client = new XuqmServerClient(XuqmServerConfig.builder()
|
|||
|
|
.baseUrl("https://dev.xuqinmin.com")
|
|||
|
|
.appId("your_app_id")
|
|||
|
|
.appSecret("your_app_secret")
|
|||
|
|
.build());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
> 服务端 SDK 需要 `appSecret` 用于 HMAC 签名,`appSecret` 绝不下发到客户端。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 发送消息
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.xuqm.sdk.server.model.SendMessageRequest;
|
|||
|
|
import com.xuqm.sdk.server.model.ImMessage;
|
|||
|
|
|
|||
|
|
ImMessage msg = client.sendMessage(SendMessageRequest.builder()
|
|||
|
|
.toId("user_002")
|
|||
|
|
.chatType("SINGLE")
|
|||
|
|
.msgType("TEXT")
|
|||
|
|
.content("Hello from Java SDK!")
|
|||
|
|
.build());
|
|||
|
|
|
|||
|
|
System.out.println("消息已发送: " + msg.getId());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 发送群消息
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
ImMessage msg = client.sendMessage(SendMessageRequest.builder()
|
|||
|
|
.toId("group_xxx")
|
|||
|
|
.chatType("GROUP")
|
|||
|
|
.msgType("TEXT")
|
|||
|
|
.content("大家好")
|
|||
|
|
.build());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 撤回消息
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
client.revokeMessage("message_id");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 群管理
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.xuqm.sdk.server.model.*;
|
|||
|
|
|
|||
|
|
// 创建群组
|
|||
|
|
ImGroup group = client.createGroup(CreateGroupRequest.builder()
|
|||
|
|
.name("项目讨论")
|
|||
|
|
.memberIds(List.of("user_001", "user_002"))
|
|||
|
|
.build());
|
|||
|
|
|
|||
|
|
// 添加群成员
|
|||
|
|
client.addGroupMember("group_xxx", "user_003");
|
|||
|
|
|
|||
|
|
// 移除群成员
|
|||
|
|
client.removeGroupMember("group_xxx", "user_003");
|
|||
|
|
|
|||
|
|
// 获取群列表
|
|||
|
|
List<ImGroup> groups = client.listGroups();
|
|||
|
|
|
|||
|
|
// 获取群成员
|
|||
|
|
List<ImUser> members = client.listGroupMembers("group_xxx");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Push 推送
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.xuqm.sdk.server.model.SendPushRequest;
|
|||
|
|
|
|||
|
|
client.sendPush(SendPushRequest.builder()
|
|||
|
|
.userId("user_001")
|
|||
|
|
.title("新消息")
|
|||
|
|
.body("你有一条未读消息")
|
|||
|
|
.payload("{\"chatId\":\"user_002\"}")
|
|||
|
|
.build());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 错误处理
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.xuqm.sdk.server.exception.XuqmApiException;
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
ImMessage msg = client.sendMessage(request);
|
|||
|
|
} catch (XuqmApiException e) {
|
|||
|
|
System.err.printf("API 错误: status=%d, code=%d, message=%s%n",
|
|||
|
|
e.getHttpStatus(), e.getCode(), e.getMessage());
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
[→ Server API 文档](/server/api)
|