package io.rong;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.rong.models.ChatroomInfo;
import io.rong.models.FormatType;
import io.rong.models.GroupInfo;
import io.rong.models.ImgMessage;
import io.rong.models.MsgObj;
import io.rong.models.PlatformNotification;
import io.rong.models.PushMessage;
import io.rong.models.PushNotification;
import io.rong.models.SdkHttpResult;
import io.rong.models.TagObj;
import io.rong.models.TxtMessage;
import io.rong.models.UserTag;
import io.rong.models.VoiceMessage;
/**
* 一些api的调用示例
*/
public class Example {
/**
* 本地调用测试
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String key = "app-key";// 替换成您的appkey
String secret = "appsecrect";// 替换成匹配上面key的secret
SdkHttpResult result = null;
// 获取token
result = ApiHttpClient.getToken(key, secret, "402880ef4a", "asdfa", "http://aa.com/a.png", FormatType.json);
System.out.println("gettoken=" + result);
// 发消息(push内容为消息内容)
List<String> toIds = new ArrayList<String>();
toIds.add("id1");
toIds.add("id2");
toIds.add("id3");
result = ApiHttpClient.publishMessage(key, secret, "fromUserId", toIds, new TxtMessage("txtMessagehaha"),
FormatType.json);
System.out.println("publishMessage=" + result);
// 发消息 语音类型
result = ApiHttpClient.publishMessage(key, secret, "fromUserId", toIds,
new VoiceMessage("txtMessagehaha", 100L), FormatType.json);
System.out.println("publishMessage=" + result);
// 发消息 图片类型
result = ApiHttpClient.publishMessage(key, secret, "fromUserId", toIds,
new ImgMessage("txtMessagehaha", "http://aa.com/a.png"), FormatType.json);
System.out.println("publishMessage=" + result);
// 发消息(push内容为填写内容)
result = ApiHttpClient.publishMessage(key, secret, "fromUserId", toIds, new TxtMessage("txtMessagehaha"),
"pushContent", "pushData", FormatType.json);
System.out.println("publishMessageAddpush=" + result);
// 发送系统消息
result = ApiHttpClient.publishSystemMessage(key, secret, "fromUserId", toIds, new TxtMessage("txtMessagehaha"),
"pushContent", "pushData", FormatType.json);
System.out.println("publishSystemMessage=" + result);
// 创建聊天室
List<ChatroomInfo> chats = new ArrayList<ChatroomInfo>();
chats.add(new ChatroomInfo("idtest", "name"));
chats.add(new ChatroomInfo("id%s+-{}{#[]", "name12312"));
result = ApiHttpClient.createChatroom(key, secret, chats, FormatType.json);
System.out.println("createchatroom=" + result);
List<String> chatIds = new ArrayList<String>();
chatIds.add("id");
chatIds.add("id%+-:{}{#[]");
result = ApiHttpClient.queryChatroom(key, secret, chatIds, FormatType.json);
System.out.println("queryChatroom=" + result);
// 发送聊天室消息
result = ApiHttpClient.publishChatroomMessage(key, secret, "fromUserId", chatIds,
new TxtMessage("txtMessagehaha"), FormatType.json);
System.out.println("publishChatroomMessage=" + result);
// 销毁聊天室
result = ApiHttpClient.destroyChatroom(key, secret, chatIds, FormatType.json);
System.out.println("destroyChatroom=" + result);
List<GroupInfo> groups = new ArrayList<GroupInfo>();
groups.add(new GroupInfo("id1", "name1"));
groups.add(new GroupInfo("id2", "name2"));
groups.add(new GroupInfo("id3", "name3"));
result = ApiHttpClient.syncGroup(key, secret, "userId1", groups, FormatType.json);
System.out.println("syncGroup=" + result);
// 加入群
result = ApiHttpClient.joinGroup(key, secret, "userId2", "id1", "name1", FormatType.json);
System.out.println("joinGroup=" + result);
// 批量加入群
List<String> list = new ArrayList<String>();
list.add("userId3");
list.add("userId1");
list.add("userId3");
list.add("userId2");
list.add("userId3");
list.add("userId3");
result = ApiHttpClient.joinGroupBatch(key, secret, list, "id1", "name1", FormatType.json);
System.out.println("joinGroupBatch=" + result);
// 发送群消息
result = ApiHttpClient.publishGroupMessage(key, secret, "userId1", chatIds, new TxtMessage("txtMessagehaha"),
"pushContent", "pushData", FormatType.json);
System.out.println("publishGroupMessage=" + result);
// 退出群
result = ApiHttpClient.quitGroup(key, secret, "userId1", "id1", FormatType.json);
System.out.println("quitGroup=" + result);
// 批量退出群
result = ApiHttpClient.quitGroupBatch(key, secret, list, "id1", FormatType.json);
System.out.println("quitGroupBatch=" + result);
// 解散群
result = ApiHttpClient.dismissGroup(key, secret, "userIddismiss", "id1", FormatType.json);
// 获取消息历史记录下载地址
result = ApiHttpClient.getMessageHistoryUrl(key, secret, "2014112811", FormatType.json);
System.out.println("getMessageHistoryUrl=" + result);
// 删除历史记录(只是删除了历史记录,不会删除消息)
result = ApiHttpClient.deleteMessageHistory(key, secret, "2014122811", FormatType.json);
System.out.println("deleteMessageHistory=" + result);
// 封禁用户相关操作**********begin**********封禁用户相关操作//
result = ApiHttpClient.blockUser(key, secret, "2", 10, FormatType.json);
System.out.println("blockUser=" + result);
// 封禁用户
result = ApiHttpClient.blockUser(key, secret, "id2", 10, FormatType.json);
System.out.println("blockUser=" + result);
result = ApiHttpClient.blockUser(key, secret, "id3", 10, FormatType.json);
System.out.println("blockUser=" + result);
// 查询封禁用户
result = ApiHttpClient.queryBlockUsers(key, secret, FormatType.json);
System.out.println("queryBlockUsers=" + result);
// 解除封禁
result = ApiHttpClient.unblockUser(key, secret, "id1", FormatType.json);
System.out.println("unblockUser=" + result);
result = ApiHttpClient.queryBlockUsers(key, secret, FormatType.json);
System.out.println("queryBlockUsers=" + result);
result = ApiHttpClient.unblockUser(key, secret, "id2", FormatType.json);
System.out.println("unblockUser=" + result);
result = ApiHttpClient.unblockUser(key, secret, "id3", FormatType.json);
System.out.println("unblockUser=" + result);
result = ApiHttpClient.queryBlockUsers(key, secret, FormatType.json);
System.out.println("queryBlockUsers=" + result);
// 封禁用户相关操作**********end**********封禁用户相关操作//
// 检查用户在线状态
result = ApiHttpClient.checkOnline(key, secret, "143", FormatType.json);
System.out.println("checkOnline=" + result);
// 添加黑名单
List<String> toBlackIds = new ArrayList<String>();
toBlackIds.add("22");
toBlackIds.add("12");
result = ApiHttpClient.blackUser(key, secret, "3706", toBlackIds, FormatType.json);
System.out.println("blackUser=" + result);
// 查询黑名单
result = ApiHttpClient.QueryblackUser(key, secret, "3706", FormatType.json);
System.out.println("QueryblackUser=" + result);
// 解除黑名单
result = ApiHttpClient.unblackUser(key, secret, "3706", toBlackIds, FormatType.json);
System.out.println("unblackUser=" + result);
result = ApiHttpClient.QueryblackUser(key, secret, "3706", FormatType.json);
System.out.println("QueryblackUser=" + result);
// 刷新群信息
result = ApiHttpClient.refreshGroupInfo(key, secret, "id1", "name4", FormatType.json);
System.out.println("refreshGroupInfo=" + result);
PushMessage message = createPushMessage();// 融云消息
// PushMessage message = createPushMessage2();//不落地push
result = ApiHttpClient.push(key, secret, message, FormatType.json);
System.out.println("push=" + result);
// 给用户打标签
UserTag tag = new UserTag();
tag.setTags(new String[] { "a", "b" });
tag.setUserId("userId11111");
result = ApiHttpClient.setUserTag(key, secret, tag, FormatType.json);
System.out.println("tag=" + result);
}
/**
* 创建发送落地消息的内容
*/
private static PushMessage createPushMessage() throws UnsupportedEncodingException {
List<String> osList = new ArrayList<>();
osList.add("ios");
osList.add("android");
TagObj tag = new TagObj();
tag.setIs_to_all(false);// 给全量用户发 设置为true则下面标签和userids将无效
// 给打标签的发则设置标签
List<String> tagas = new ArrayList<String>();
tagas.add("a");
tagas.add("b");
tagas.add("3");
tag.setTag(tagas);
// 给特定用户ID发,优先级高于上面的标签
List<String> tagus = new ArrayList<String>();
tagus.add("123");
tagus.add("456");
tag.setUserid(tagus);
PushMessage pmsg = new PushMessage();
pmsg.setPlatform(osList);
PushNotification noti = new PushNotification();
noti.setAlert("ddd");
noti.setAndroid(createPush());
noti.setIos(createPush());
pmsg.setNotification(noti);
// 下面两个参数的有无 控制发送的落地消息还是不落地的push
// PushMessage实体中的 fromuserid 和 message为null即为不落地的push
pmsg.setFromuserid("fromuseId1");
MsgObj msg = new MsgObj();
TxtMessage message = new TxtMessage("hello", "one extra");
msg.setContent(message.toString());
msg.setObjectName(message.getType());
pmsg.setMessage(msg);
// 上面两个参数的有无 控制发送的落地消息还是不落地的push
pmsg.setAudience(tag);
System.out.println(pmsg.toString());
return pmsg;
}
/**
* 创建发送不落地的push内容
*/
private static PushMessage createPushMessage2() throws UnsupportedEncodingException {
List<String> osList = new ArrayList<>();
osList.add("ios");
osList.add("android");
TagObj tag = new TagObj();
tag.setIs_to_all(false);// 给全量用户发 设置为true则下面标签和userids将无效
// 给打标签的发则设置标签
List<String> tagas = new ArrayList<String>();
tagas.add("a");
tagas.add("b");
tagas.add("3");
tag.setTag(tagas);
// 给特定用户ID发,优先级高于上面的标签
List<String> tagus = new ArrayList<String>();
tagus.add("123");
tagus.add("456");
tag.setUserid(tagus);
PushMessage pmsg = new PushMessage();
pmsg.setPlatform(osList);
PushNotification noti = new PushNotification();
noti.setAlert("ddd");
noti.setAndroid(createPush());
noti.setIos(createPush());
pmsg.setNotification(noti);
pmsg.setAudience(tag);
System.out.println(pmsg.toString());
return pmsg;
}
private static PlatformNotification createPush() {
PlatformNotification data = new PlatformNotification();
data.setAlert("override alert");
Map<String, String> map = new HashMap<>();
map.put("id", "1");
map.put("name", "2");
data.setExtras(map);
return data;
}
}