服务端SDK

0.0.1. SDK简介

目前只提供有Java语言的服务端SDK,其它语言按照API接口文档来自己对接也很简单。服务器SDK包括Admin SDK、机器人SDK和频道SDK。如果您需要一种或多种功能都可以使用这个SDK。

  1. Admin SDK是IM服务的管理SDK,实现了包括创建用户、发送消息、创建群组、创建机器人、创建频道、管理敏感词、封禁/解封用户、消息回调等操作,实现了所有的Server API接口。
  2. 机器人SDK是机器人管理SDK,可以管理某个机器人,实现了包括查询用户、发送消息、创建群组等操作,实现了所有的Robot API接口。
  3. 频道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

  1. 把release包中的两个jar包common-1.xx.jarsdk-1.xx.jar放到工程目录下,比如${ProjectPath}/src/lib目录下。
  2. 修改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>
    
  3. 修改打包插件配置,确保打包时能把这两个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>
    
  4. 编译打包,确保能够打包成功。

0.0.4. 使用SDK

  1. 首先需要初始化。在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

  1. 调用不同的接口,来实现功能

    //使用用户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);
     }
    
  2. 发送消息的示例 请参考源码https://gitee.com/wfchat/im-server/blob/wildfirechat/sdk/src/main/java/cn/wildfirechat/sdk/Main.java中的void testMessageContent()函数,里面有发送各种类型消息的示例。如果是未提供示例或者自定义下消息,需要跟客户端共同确认MessagePayload的格式。

  3. 其他接口使用说明 请参考源码https://gitee.com/wfchat/im-server/blob/wildfirechat/sdk/src/main/java/cn/wildfirechat/sdk/Main.java。如果有问题或者缺失,请提issue。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2024-10-01 07:37:50

results matching ""

    No results matching ""