前几天刚把腾讯IM的及时聊天改完 但是还有些许bug没有处理 后来发现融云的出API了 就立马去试了一下 发现还是官网demo比较好用 在此做个记录
首先把官网demo下载下来再实现我们的改造: github地址
下载下来之后我们会得到这样一个项目
之后我们搭建一个springboot的架子
springboot 相信大家都会搭建了
直接上我的pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.9.RELEASE
1.8
2.1.9
1.0.5
4.5.13
UTF-8
com.rong
im_core
1.0.0
im_core
For improving the efficiency of developers,RongCloud provides an open source IM Server SDK officially.
With this SDK, you can get token, send messages, add sensitive words, ban user, manage group, create chat room and so on.
https://github.com/rongcloud/server-sdk-java
https://github.com/rongcloud/server-sdk-java
scm:git:https://github.com/rongcloud/server-sdk-java.git
RcongCloud Group
https://github.com/rongcloud
rongcloud
rongcloud
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-logging
com.google.code.gson
gson
commons-codec
commons-codec
1.4
com.alibaba
fastjson
1.2.41
junit
junit
4.12
com.thoughtworks.xstream
xstream
1.4.9
com.fasterxml.jackson.core
jackson-annotations
[2.9.9.2,)
com.fasterxml.jackson.core
jackson-databind
2.9.10
org.apache.commons
commons-lang3
3.6
org.projectlombok
lombok
true
org.apache.maven.plugins
maven-compiler-plugin
1.7
UTF-8
${project.basedir}/lib
org.springframework.boot
spring-boot-maven-plugin
src/main/resources
true
之后直接进行项目的迁移 我的是已经接入过的config 接口 dto对象都都是自己创建的 红色方框中的包是直接从demo中copy下来的
下面开始将配置文件
这个是融云的请求json实例 需要复制过来
最后就是properties
server.port=8082
server.servlet.context-path=/im_core
system.appKey=
system.appSecret=
填写上你申请的key和secret就可以直接使用了
之后开始根据自己的业务进行适当的改造就可以了
拿注册为例子 先是请求vo
import lombok.Data;
import java.io.Serializable;
/**
* @author Jiang
* @date 2019/10/12 16:10
*/
@Data
public class RegisterRongReqVO implements Serializable {
private static final long serialVersionUID = 42625358235375025L;
private String hand;
private String nick;
private String id;
}
之后是第三方交互dto
import lombok.Data;
import java.io.Serializable;
/**
* @author Jiang
* @date 2019/10/12 16:49
*/
@Data
public class RegisterUserDto implements Serializable {
private static final long serialVersionUID = -3474840018641708589L;
private String token;
private String userId;
private String code;
}
读取配置文件
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
*
* 系统默认属性
*/
@Data
@Component
@ConfigurationProperties(prefix = "system")
public class SystemDefaultConfig {
private String appKey;
private String appSecret;
}
最后是接口
@Autowired
SystemDefaultConfig systemDefaultConfig;
@GetMapping("reg")
public ResponseResult reg(RegisterRongReqVO vo){
RongCloud rongCloud = RongCloud.getInstance(systemDefaultConfig.getAppKey(), systemDefaultConfig.getAppSecret());
User User = rongCloud.user;
try{
/**
* API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register
*
* 注册用户,生成用户在融云的唯一身份标识 Token
*/
UserModel user = new UserModel()
.setId(vo.getId())
.setName(vo.getNick())
.setPortrait(vo.getHand());
TokenResult result = User.register(user);
RegisterUserDto dto = new GsonBuilder()
.create().fromJson(result.toString(),
new TypeToken() {
}.getType());
if(dto.getCode().equals("200")){
return ResponseResult.success(dto.getToken());
}
return ResponseResult.failNotice("注册失败");
}catch (Exception e) {
return ResponseResult.failNotice("注册失败");
}
}
然后打开项目 打开postman 开始测试
我是为了拿到他的第三方签名让APP去登陆用的所以我直接返回了一个字符串就是融云的签名 放到缓存数据库中 也可以直接持久化到mysql中 看业务需求 还有最好将第三方的代码仔细阅读一遍 这样改起来更顺手点 直接将此项目打成jar包通过远程RPC调用即可
总结:一天一坑 迟早会有我踩完的那一天