Chatter Api 有权通过 Platform Trigger 创建 Feed
Chatter Api Access to create Feed via Platform Trigger
我正在尝试使用来自平台事件触发器的 Chatter API(因为我需要在 post 中提及用户)创建聊天提要。
但是我收到一个错误:- "Insufficient Privileges: The Connect API is not enabled for this user type." in Debug Logs
并且调试日志中显示的用户是自动化进程,而不是创建 post 请求的经过身份验证的用户。
所以我的问题是我是否需要在触发器内对 Chatter API 进行身份验证?如果是,我该怎么做。
或者我是否缺少任何聊天配置?
触发码
trigger SampleEventsTrigger on Sample_Events__e (after insert) {
System.debug('Event Log');
for (Sample_Events__e event : Trigger.New) {
System.debug('Event: ' + event);
//postFeedForSmartwinnr.PostFeedMethod(event.CreatedById, event.userId__c, event.Notification_message__c); // Call function to Create Chatter
ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();
ConnectApi.MentionSegmentInput mentionSegmentInput = new ConnectApi.MentionSegmentInput();
ConnectApi.MessageBodyInput messageBodyInput = new ConnectApi.MessageBodyInput();
ConnectApi.TextSegmentInput textSegmentInput = new ConnectApi.TextSegmentInput();
System.debug('feedItemInput: ' );
System.debug(feedItemInput);
messageBodyInput.messageSegments = new List<ConnectApi.MessageSegmentInput>();
mentionSegmentInput.id = event.userId__c;
messageBodyInput.messageSegments.add(mentionSegmentInput);
textSegmentInput.text = event.Notification_message__c;
messageBodyInput.messageSegments.add(textSegmentInput);
System.debug(feedItemInput);
feedItemInput.body = messageBodyInput;
feedItemInput.feedElementType = ConnectApi.FeedElementType.FeedItem;
//feedItemInput.subjectId = '0F9RR0000004CPw';
System.debug(feedItemInput);
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement( Network.getNetworkId(), feedItemInput); // Error is on this line
System.debug('feedElement');
System.debug(feedElement);
}
}
提前致谢...
据我所知,当时在场的用户是 Automated Process,他能够使用 class post 提要,但是无法访问聊天室 REST API
我正在尝试使用来自平台事件触发器的 Chatter API(因为我需要在 post 中提及用户)创建聊天提要。 但是我收到一个错误:- "Insufficient Privileges: The Connect API is not enabled for this user type." in Debug Logs
并且调试日志中显示的用户是自动化进程,而不是创建 post 请求的经过身份验证的用户。
所以我的问题是我是否需要在触发器内对 Chatter API 进行身份验证?如果是,我该怎么做。
或者我是否缺少任何聊天配置?
触发码
trigger SampleEventsTrigger on Sample_Events__e (after insert) {
System.debug('Event Log');
for (Sample_Events__e event : Trigger.New) {
System.debug('Event: ' + event);
//postFeedForSmartwinnr.PostFeedMethod(event.CreatedById, event.userId__c, event.Notification_message__c); // Call function to Create Chatter
ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();
ConnectApi.MentionSegmentInput mentionSegmentInput = new ConnectApi.MentionSegmentInput();
ConnectApi.MessageBodyInput messageBodyInput = new ConnectApi.MessageBodyInput();
ConnectApi.TextSegmentInput textSegmentInput = new ConnectApi.TextSegmentInput();
System.debug('feedItemInput: ' );
System.debug(feedItemInput);
messageBodyInput.messageSegments = new List<ConnectApi.MessageSegmentInput>();
mentionSegmentInput.id = event.userId__c;
messageBodyInput.messageSegments.add(mentionSegmentInput);
textSegmentInput.text = event.Notification_message__c;
messageBodyInput.messageSegments.add(textSegmentInput);
System.debug(feedItemInput);
feedItemInput.body = messageBodyInput;
feedItemInput.feedElementType = ConnectApi.FeedElementType.FeedItem;
//feedItemInput.subjectId = '0F9RR0000004CPw';
System.debug(feedItemInput);
ConnectApi.FeedElement feedElement = ConnectApi.ChatterFeeds.postFeedElement( Network.getNetworkId(), feedItemInput); // Error is on this line
System.debug('feedElement');
System.debug(feedElement);
}
}
提前致谢...
据我所知,当时在场的用户是 Automated Process,他能够使用 class post 提要,但是无法访问聊天室 REST API