公司项目用的极光im,为了用户在注册完成后就可以用极光im进行沟通,需要在用户在平台注册的时候,也要在极光im上也要进行注册,但是看官方文档确实有点找不着头脑,那只能下载光网提供的SDK自己研究了
极光im服务端SDK下载地址:https://docs.jiguang.cn/jmessage/resources/
所需的jar:
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jmessage-client</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jiguang-common</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<!-- For log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
下载好了以后我们光看user模块的信息就行了,那么现在把我的研究成果分享给大家,贴代码!
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.jiguang.common.ClientConfig;
import cn.jiguang.common.ServiceHelper;
import cn.jiguang.common.connection.ApacheHttpClient;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jiguang.common.resp.ResponseWrapper;
import cn.jmessage.api.JMessageClient;
import cn.jmessage.api.common.model.RegisterInfo;
import cn.jmessage.api.common.model.RegisterPayload;
import cn.jmessage.api.user.UserClient;
/**
* <p>Title: regJiguang</p>
* <p>Description: </p>
* @author ahk
* @date 2018年6月13日
*/
public class regJiguang {
protected static final Logger LOG = LoggerFactory.getLogger(regJiguang.class);
private static final String appKey = "请填写您的appkey";
private static final String masterSecret = "请填写您的masterSecret";
//方法一:利用ApacheHttpClient代替JMessageClient进行用户的注册
public static void regPP(String username,String password) {
JMessageClient client = new JMessageClient(appKey, masterSecret);
String authCode = ServiceHelper.getBasicAuthorization(appKey, masterSecret);
ApacheHttpClient httpClient = new ApacheHttpClient(authCode, null, ClientConfig.getInstance());
client.setHttpClient(httpClient);
try {
List<RegisterInfo> users = new ArrayList<RegisterInfo>();
RegisterInfo user = RegisterInfo.newBuilder()
.setUsername(username)
.setPassword(password)
.build();
users.add(user);
RegisterInfo[] regUsers = new RegisterInfo[users.size()];
String res = client.registerUsers(users.toArray(regUsers));
LOG.info(res);
} catch (APIConnectionException e) {
LOG.error("连接错误。请稍后重试。 ", e);
} catch (APIRequestException e) {
LOG.error("JPush服务器的错误响应。请检查并改正。", e);
LOG.info("网络状态: " + e.getStatus());
LOG.info("错误信息: " + e.getMessage());
}
}
//方法二 :利用UserClient来进行用户的注册
public static void regPP1(String username,String password) {
UserClient client = new UserClient(appKey, masterSecret);
try {
List<RegisterInfo> users = new ArrayList<RegisterInfo>();
RegisterInfo user = RegisterInfo.newBuilder()
.setUsername(username)
.setPassword(password)
.build();
users.add(user);
RegisterInfo[] regUsers = new RegisterInfo[users.size()];
RegisterPayload payload = RegisterPayload.newBuilder()
.addUsers(users.toArray(regUsers)).build();
ResponseWrapper registerUsers = client.registerUsers(payload);
System.out.println(registerUsers);
// LOG.info(res);
} catch (APIConnectionException e) {
LOG.error("连接错误。请稍后重试。 ", e);
} catch (APIRequestException e) {
LOG.error("JPush服务器的错误响应。请检查并改正。", e);
LOG.info("网络状态: " + e.getStatus());
LOG.info("错误信息: " + e.getMessage());
}
}
public static void main(String[] args) {
regPP1("testAHK10","test123456");
}
}
用方法一和方法二都是可以的,但是我同事反馈方法一有时候不好用,但是我无论用哪个都是可以的,为了兼容性,个人推荐方法二!哦了~