public class ChatterSender {
/*
* 发送chatter消息公共类
* userId:@对象
* text:消息文本
* objectId:相关记录
*/
//@对象为一用户
public static void send(Id userId,String text,Id objectId){
ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();//富文本消息体
ConnectApi.MentionSegmentInput mentionSegmentInput = new ConnectApi.MentionSegmentInput();//@对象
ConnectApi.MessageBodyInput messageBodyInput = new ConnectApi.MessageBodyInput();//消息体
ConnectApi.TextSegmentInput textSegmentInput = new ConnectApi.TextSegmentInput();//消息文本
messageBodyInput.messageSegments = new List<ConnectApi.MessageSegmentInput>();//消息体的消息文本
textSegmentInput.text=text;//消息文本赋值
messageBodyInput.messageSegments.add(textSegmentInput);//消息体的消息文本赋值
mentionSegmentInput.id = userId;//@对象赋值
messageBodyInput.messageSegments.add(mentionSegmentInput);////消息体的消息文本增加@对象
feedItemInput.body = messageBodyInput;//富文本消息体赋值
feedItemInput.feedElementType = ConnectApi.FeedElementType.FeedItem;//类型
feedItemInput.subjectId = objectId;//关联记录
try{
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement(Network.getNetworkId(), feedItemInput, null);//post消息
}catch(Exception e){
if(e.getTypeName().contains('ConnectApi.NotFoundException')){
feedItemInput.subjectId = userId;//删除时,post对象设置为上级
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement(Network.getNetworkId(), feedItemInput, null);//post消息
}
}
}
//@对象为多个用户
public static void send(Set<Id> userIdSet,String text,Id objectId){
ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();//富文本消息体
ConnectApi.MessageBodyInput messageBodyInput = new ConnectApi.MessageBodyInput();//消息体
ConnectApi.TextSegmentInput textSegmentInput = new ConnectApi.TextSegmentInput();//消息文本
messageBodyInput.messageSegments = new List<ConnectApi.MessageSegmentInput>();//消息体的消息文本
textSegmentInput.text=text;//消息文本赋值
messageBodyInput.messageSegments.add(textSegmentInput);//消息体的消息文本赋值
//添加@对象
for(Id usrId : userIdSet){
ConnectApi.MentionSegmentInput mentionSegmentInput = new ConnectApi.MentionSegmentInput();//@对象
mentionSegmentInput.id = usrId;//@对象赋值
messageBodyInput.messageSegments.add(mentionSegmentInput);//消息体的消息文本增加@对象
}
feedItemInput.body = messageBodyInput;//富文本消息体赋值
feedItemInput.feedElementType = ConnectApi.FeedElementType.FeedItem;//类型
feedItemInput.subjectId = objectId;//关联记录
try{
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement(Network.getNetworkId(), feedItemInput, null);//post消息
}catch(Exception e){
if(e.getTypeName().contains('ConnectApi.NotFoundException')){
if(userIdSet.size() > 0){
for(Id usrId : userIdSet){
feedItemInput.subjectId = usrId;//删除时,post对象设置为上级
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement(Network.getNetworkId(), feedItemInput, null);//post消息
}
}
}
}
}
}
Salesforce 发送公共信息
最新推荐文章于 2019-03-22 11:26:54 发布