初始化
This commit is contained in:
@@ -0,0 +1,290 @@
|
||||
package com.ifish.netease;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.ifish.enums.NeteaseEnum;
|
||||
import com.ifish.util.IfishUtil;
|
||||
|
||||
public class NeteaseIM {
|
||||
|
||||
String appKey = "";
|
||||
String appSecret = "";
|
||||
|
||||
private static Logger log = LoggerFactory.getLogger(NeteaseIM.class);
|
||||
|
||||
public NeteaseIM(String appKey,String appSecret){
|
||||
this.appKey=appKey;
|
||||
this.appSecret=appSecret;
|
||||
}
|
||||
/**
|
||||
* 创建云信ID
|
||||
* @param accid 云信ID,最大长度32字符,必须保证一个APP内唯一
|
||||
* @param name 云信ID昵称,最大长度64字符,用来PUSH推送 时显示的昵称
|
||||
* @param icon 云信ID头像URL,第三方可选填,最大长度1024
|
||||
* @param props json属性,第三方可选填,最大长度1024字符
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, String> createAccid(String accid,String name,String icon,String props){
|
||||
try {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String url = "https://api.netease.im/nimserver/user/create.action";
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
String nonce = IfishUtil.getCharAndNumr(10);
|
||||
String curTime = String.valueOf((new Date()).getTime() / 1000L);
|
||||
//计算CheckSum
|
||||
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);
|
||||
//设置请求的header
|
||||
httpPost.addHeader("AppKey", appKey);
|
||||
httpPost.addHeader("Nonce", nonce);
|
||||
httpPost.addHeader("CurTime", curTime);
|
||||
httpPost.addHeader("CheckSum", checkSum);
|
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
|
||||
//设置请求的参数
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("accid", accid));
|
||||
nvps.add(new BasicNameValuePair("name", name));
|
||||
nvps.add(new BasicNameValuePair("icon", icon));
|
||||
nvps.add(new BasicNameValuePair("props", props));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
|
||||
//执行请求
|
||||
HttpResponse response = httpClient.execute(httpPost);
|
||||
//执行结果
|
||||
String responseStr = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
System.out.println(responseStr);
|
||||
JSONObject json = new JSONObject(responseStr);
|
||||
String code = json.getString("code");
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("code", code);
|
||||
//200
|
||||
if(code.equals(NeteaseEnum.status200.getKey())){
|
||||
JSONObject infoJson = json.getJSONObject("info");
|
||||
String token = infoJson.getString("token");
|
||||
map.put("token", token);
|
||||
}
|
||||
else if(code.equals(NeteaseEnum.status414.getKey())){
|
||||
String desc = json.getString("desc");
|
||||
}
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("CreateAccid error message:{},{}",accid,e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 云信ID基本信息更新
|
||||
* @param accid 云信ID,最大长度32字符,必须保证一个APP内唯一
|
||||
* @param token 云信ID可以指定登录token值,最大长度128字符
|
||||
* @param props json属性,第三方可选填,最大长度1024字符
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, String> updateAccid(String accid,String token,String props){
|
||||
try {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String url = "https://api.netease.im/nimserver/user/update.action";
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
String nonce = IfishUtil.getCharAndNumr(10);
|
||||
String curTime = String.valueOf((new Date()).getTime() / 1000L);
|
||||
//计算CheckSum
|
||||
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);
|
||||
//设置请求的header
|
||||
httpPost.addHeader("AppKey", appKey);
|
||||
httpPost.addHeader("Nonce", nonce);
|
||||
httpPost.addHeader("CurTime", curTime);
|
||||
httpPost.addHeader("CheckSum", checkSum);
|
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
|
||||
//设置请求的参数
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("accid", accid));
|
||||
nvps.add(new BasicNameValuePair("token", token));
|
||||
nvps.add(new BasicNameValuePair("props", props));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
|
||||
//执行请求
|
||||
HttpResponse response = httpClient.execute(httpPost);
|
||||
//执行结果
|
||||
String responseStr = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
JSONObject json = new JSONObject(responseStr);
|
||||
String code = json.getString("code");
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("code", code);
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("updateAccid error message:{},{}",accid,e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 更新并获取新token
|
||||
* @param accid
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, String> refreshToken(String accid){
|
||||
try {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String url = "https://api.netease.im/nimserver/user/refreshToken.action";
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
String nonce = IfishUtil.getCharAndNumr(10);
|
||||
String curTime = String.valueOf((new Date()).getTime() / 1000L);
|
||||
//计算CheckSum
|
||||
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);
|
||||
//设置请求的header
|
||||
httpPost.addHeader("AppKey", appKey);
|
||||
httpPost.addHeader("Nonce", nonce);
|
||||
httpPost.addHeader("CurTime", curTime);
|
||||
httpPost.addHeader("CheckSum", checkSum);
|
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
|
||||
//设置请求的参数
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("accid", accid));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
|
||||
//执行请求
|
||||
HttpResponse response = httpClient.execute(httpPost);
|
||||
//执行结果
|
||||
String responseStr = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
JSONObject json = new JSONObject(responseStr);
|
||||
String code = json.getString("code");
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("code", code);
|
||||
//200
|
||||
if(code.equals(NeteaseEnum.status200.getKey())){
|
||||
JSONObject infoJson = json.getJSONObject("info");
|
||||
String token = infoJson.getString("token");
|
||||
map.put("token", token);
|
||||
}
|
||||
else if(code.equals(NeteaseEnum.status414.getKey())){
|
||||
String desc = json.getString("desc");
|
||||
}
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("refreshToken error message:{},{}",accid,e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送普通消息
|
||||
* @param from
|
||||
* @param to
|
||||
* @param msg
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> sendMsg(String from,String to,String msg){
|
||||
try {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String url = "https://api.netease.im/nimserver/msg/sendMsg.action";
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
String nonce = IfishUtil.getCharAndNumr(10);
|
||||
String curTime = String.valueOf((new Date()).getTime() / 1000L);
|
||||
//计算CheckSum
|
||||
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);
|
||||
//设置请求的header
|
||||
httpPost.addHeader("AppKey", appKey);
|
||||
httpPost.addHeader("Nonce", nonce);
|
||||
httpPost.addHeader("CurTime", curTime);
|
||||
httpPost.addHeader("CheckSum", checkSum);
|
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
|
||||
//设置请求的参数
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("from", from));
|
||||
nvps.add(new BasicNameValuePair("to", to));
|
||||
nvps.add(new BasicNameValuePair("ope", "0"));
|
||||
nvps.add(new BasicNameValuePair("type", "0"));
|
||||
nvps.add(new BasicNameValuePair("body", "{\"msg\":\""+msg+"\"}"));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
|
||||
//执行请求
|
||||
HttpResponse response = httpClient.execute(httpPost);
|
||||
//执行结果
|
||||
String responseStr = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
System.out.println(responseStr);
|
||||
JSONObject json = new JSONObject(responseStr);
|
||||
String code = json.getString("code");
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("code", code);
|
||||
//200
|
||||
if(code.equals(NeteaseEnum.status200.getKey())){
|
||||
|
||||
}
|
||||
else if(code.equals(NeteaseEnum.status414.getKey())){
|
||||
String desc = json.getString("desc");
|
||||
}
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("refreshToken error message:{}",e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 批量发送点对点普通消息
|
||||
* @param fromAccid
|
||||
* @param toAccids
|
||||
* @param msg
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> sendBatchMsg(String fromAccid,String toAccids,String msg){
|
||||
try {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String url = "https://api.netease.im/nimserver/msg/sendBatchMsg.action";
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
String nonce = IfishUtil.getCharAndNumr(10);
|
||||
String curTime = String.valueOf((new Date()).getTime() / 1000L);
|
||||
//计算CheckSum
|
||||
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);
|
||||
//设置请求的header
|
||||
httpPost.addHeader("AppKey", appKey);
|
||||
httpPost.addHeader("Nonce", nonce);
|
||||
httpPost.addHeader("CurTime", curTime);
|
||||
httpPost.addHeader("CheckSum", checkSum);
|
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
|
||||
//设置请求的参数
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("fromAccid", fromAccid));
|
||||
nvps.add(new BasicNameValuePair("toAccids", toAccids));
|
||||
nvps.add(new BasicNameValuePair("type", "0"));
|
||||
nvps.add(new BasicNameValuePair("body", "{\"msg\":\""+msg+"\"}"));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
|
||||
//执行请求
|
||||
HttpResponse response = httpClient.execute(httpPost);
|
||||
//执行结果
|
||||
String responseStr = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
System.out.println(responseStr);
|
||||
JSONObject json = new JSONObject(responseStr);
|
||||
String code = json.getString("code");
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("code", code);
|
||||
//200
|
||||
if(code.equals(NeteaseEnum.status200.getKey())){
|
||||
|
||||
}
|
||||
else if(code.equals(NeteaseEnum.status414.getKey())){
|
||||
String desc = json.getString("desc");
|
||||
}
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("refreshToken error message:{}",e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
List<String> list= new ArrayList<String>();
|
||||
list.add("hello");
|
||||
list.add("hello1");
|
||||
new NeteaseIM("87b0e3315dfc2df08060bcb54246da68", "e62f6c247b46").createAccid("ifish", "爱鱼奇", "", "");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user