极光im java服务端用户注册

公司项目用的极光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");
		

	}

}

用方法一和方法二都是可以的,但是我同事反馈方法一有时候不好用,但是我无论用哪个都是可以的,为了兼容性,个人推荐方法二!哦了~
 

猜你喜欢

转载自blog.csdn.net/KayLoveJie/article/details/80676656