服务端SDK
0.0.1. SDK简介
目前只提供有Java语言的服务端SDK,其它语言按照API接口文档来自己对接也很简单。服务器SDK包括Admin SDK、机器人SDK和频道SDK。如果您需要一种或多种功能都可以使用这个SDK。
- Admin SDK是IM服务的管理SDK,实现了包括创建用户、发送消息、创建群组、创建机器人、创建频道、管理敏感词、封禁/解封用户、消息回调等操作,实现了所有的Server API接口。
- 机器人SDK是机器人管理SDK,可以管理某个机器人,实现了包括查询用户、发送消息、创建群组等操作,实现了所有的Robot API接口。
- 频道SDK是频道SDK,可以管理某个频道,实现了包括查询用户、广播消息、单发消息、订阅/取消订阅、修改自身信息等操作,实现了所有的Channel API接口。
0.0.2. SDK的位置
源码在server/sdk
目录,编译打包后在release包中的server_sdk
目录中。在server_sdk
目录下有2个jar包和一个说明。也可以下载我们编译好的,从这里下载我们发布的最新软件包,解压distribution-1.2.9-bundle-tar.tar.gz
文件,找到server_sdk
。
0.0.3. 引入SDK
- 把release包中的两个jar包
common-1.xx.jar
和sdk-1.xx.jar
放到工程目录下,比如${ProjectPath}/src/lib
目录下。 修改pom文件,在pom文件中加入如下依赖,注意修改jar包的路径
<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.11</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>cn.wildfirechat</groupId> <artifactId>sdk</artifactId> <version>0.20</version> <scope>system</scope> <systemPath>${project.basedir}/src/lib/sdk-1.xx.jar</systemPath> </dependency> <dependency> <groupId>cn.wildfirechat</groupId> <artifactId>common</artifactId> <version>0.20</version> <scope>system</scope> <systemPath>${project.basedir}/src/lib/common-1.xx.jar</systemPath> </dependency> </dependencies>
修改打包插件配置,确保打包时能把这两个jar包打进去,下面是springboot的修改,请参考。如果有问题,请百度解决。
<!--# 由于添加了本地jar包,需要打包时把sdk和common打进去,下面是springboot项目添加includeSystemScope部分,其它类型项目请百度。 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
编译打包,确保能够打包成功。
0.0.4. 使用SDK
- 首先需要初始化。在
ChatConfig
类里有三个函数,分别初始化Server API接口、Robot API接口和Channel API接口。如果您只使用部分接口,只需要初始化您使用的功能就行了。
AdminConfig.initAdmin(admin_url, admin_secret);
RobotService robotService = new RobotService(im_url, robotId, robotSecret);
ChannelServiceApi channelServiceApi = new ChannelServiceApi(im_url, channelId, channelSecret);
Admin URL使用server API端口(默认是18080), 一般是内网使用,强烈不建议对外网开放这个端口,所以应该是内网地址,比如 http://192.168.2.5:18080 。
Robot和Channel API使用80端口。可以外网使用,也可以内网使用。外网地址比如是 https://im.wildfirechat.cn 。内网地址比如 http://192.168.2.5 。
调用不同的接口,来实现功能
//使用用户id获取token IMResult<OutputGetIMTokenData> tokenResult = UserAdmin.getUserToken(user.getUserId(), clientId); if (tokenResult.getErrorCode() != ErrorCode.ERROR_CODE_SUCCESS) { LOG.error("Get user failure {}", tokenResult.code); return null; } return tokenResult.getResult().getToken(); //机器人发送消息给用户 IMResult<SendMessageResult> resultRobotSendMessage = robotService.sendMessage("robot1", conversation, payload); if (resultRobotSendMessage != null && resultRobotSendMessage.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { System.out.println("robot send message success"); } else { System.out.println("robot send message failure"); System.exit(-1); }
发送消息的示例 请参考源码
https://gitee.com/wfchat/im-server/blob/wildfirechat/sdk/src/main/java/cn/wildfirechat/sdk/Main.java
中的void testMessageContent()
函数,里面有发送各种类型消息的示例。如果是未提供示例或者自定义下消息,需要跟客户端共同确认MessagePayload的格式。其他接口使用说明 请参考源码
https://gitee.com/wfchat/im-server/blob/wildfirechat/sdk/src/main/java/cn/wildfirechat/sdk/Main.java
。如果有问题或者缺失,请提issue。