全员推送
全员推送
全员推送,用户运营利器,不仅支持全员发送特定内容,还可根据标签、属性,针对特定用户群体发送个性化内容,如会员活动、区域通知等,助力拉新、转化、促活等各个阶段运营工作的有效进行。
- 支持全员推送。
- 支持按用户属性推送。
- 支持按用户标签推送。
- 管理员推送消息,接收方看到消息发送者是管理员。
- 管理员指定某一账号向其他账号推送消息,接收方看到发送者不是管理员,而是管理员指定的账号。
- 支持消息离线存储,不支持漫游。
- 由于全员推送需要下发的账号数量巨大,下发完全部账号需要一定时间(根据账号总数而定,一般在一分钟内)。
- 支持只推在线用户,需要将 MsgLifeTime 参数设置为 0。
使用示例:
TIMTextMsgElement msg = new TIMTextMsgElement("hi, beauty");
List<TIMMsgElement> msgBody = Collections.singletonList(msg);
ImPushRequest request = ImPushRequest.builder()
.msgRandom(9312457L)
.msgBody(msgBody)
.fromAccount("admin")
.msgLifeTime(120)
.build();
ImPushResult result = client.member.imPush(request);
设置应用属性名称
每个应用可以设置自定义的用户属性,最多可以有 10 个。通过本接口可以设置每个属性的名称,设置完成后,即可用于按用户属性推送等。
使用示例:
Map<String, String> attrNames = new HashMap<>(3);
attrNames.put("0", "sex");
attrNames.put("1", "city");
attrNames.put("2", "country");
ImSetAttrNameRequest request = new ImSetAttrNameRequest(attrNames);
ImSetAttrNameResult result = client.member.imSetAttrName(request);
获取应用属性名称
管理员获取应用属性名称。使用前请先 设置应用属性名称 。
使用示例:
ImGetAttrNameRequest request = new ImGetAttrNameRequest();
ImGetAttrNameResult result = client.member.imGetAttrName(request);
获取用户属性
获取用户属性(必须以管理员账号调用);每次最多只能获取 100 个用户的属性。使用前请先 设置应用属性名称 。
使用示例:
List<String> toAccount = Arrays.asList("test1", "test2");
ImGetAttrRequest request = new ImGetAttrRequest(toAccount);
ImGetAttrResult result = client.member.imGetAttr(request);
设置用户属性
管理员给用户设置属性。每次最多只能给 100 个用户设置属性。使用前请先 设置应用属性名称 。
使用示例:
Map<String, Object> attrs = new HashMap<>();
attrs.put("sex", "attr1");
attrs.put("city", "attr2");
UserAttrItem item = new UserAttrItem("test1", attrs);
List<UserAttrItem> userAttrs = Collections.singletonList(item);
ImSetAttrRequest request = new ImSetAttrRequest(userAttrs);
ImSetAttrResult result = client.member.imSetAttr(request);
删除用户属性
管理员给用户删除属性。注意每次最多只能给 100 个用户删除属性。使用前请先 设置应用属性名称 。
使用示例:
Map<String, Object> attrs = new HashMap<>();
attrs.put("sex", "attr1");
attrs.put("city", "attr2");
UserAttrItem item = UserAttrItem.builder()
.toAccount("test1")
.attrs(attrs)
.build();
List<UserAttrItem> userAttrs = Collections.singletonList(item);
ImRemoveAttrRequest request = new ImRemoveAttrRequest(userAttrs);
ImRemoveAttrResult result = client.member.imRemoveAttr(request);
获取用户标签
获取用户标签(必须以管理员账号调用)。每次最多只能获取 100 个用户的标签。
使用示例:
List<String> toAccount = Arrays.asList("test1", "test2");
ImGetTagRequest request = new ImGetTagRequest(toAccount);
ImGetTagResult result = client.member.imGetTag(request);
添加用户标签
管理员给用户添加标签。
注意
- 每次请求最多只能给 100 个用户添加标签,请求体中单个用户添加标签数最多为 10 个。
- 单个用户可设置最大标签数为 100 个,若用户当前标签超过 100,则添加新标签之前请先删除旧标签。
- 单个标签最大长度为 50 字节。
使用示例:
List<String> tags = Arrays.asList("a", "b");
UserTagItem item = UserTagItem.builder()
.toAccount("test1")
.tags(tags)
.build();
List<UserTagItem> userTags = Collections.singletonList(item);
ImAddTagRequest request = new ImAddTagRequest(userTags);
ImAddTagResult result = client.member.imAddTag(request);
删除用户标签
管理员给用户删除标签。注意每次最多只能给 100 个用户删除标签。
使用示例:
List<String> tags = Arrays.asList("a", "b");
UserTagItem item = UserTagItem.builder()
.toAccount("test1")
.tags(tags)
.build();
List<UserTagItem> userTags = Collections.singletonList(item);
ImRemoveTagRequest request = new ImRemoveTagRequest(userTags);
ImRemoveTagResult result = client.member.imRemoveTag(request);
删除所有用户标签
管理员给用户删除所有标签。注意每次最多只能给 100 个用户删除所有标签。
使用示例:
List<String> toAccount = Arrays.asList("test1", "test2");
ImRemoveAllTagsRequest request = new ImRemoveAllTagsRequest(toAccount);
ImRemoveAllTagsResult result = client.member.imRemoveAllTags(request);