Newer Version Available

This content describes an older version of this product. View Latest

Post a Batch of Feed Elements with New (Binary) Files

This trigger calls the postFeedElementBatch(communityId, feedElements) method to bulk post to the feeds of newly inserted accounts. Each post has a new file (binary) attachment.
1trigger postFeedItemToAccountWithBinary on Account (after insert) {
2    Account[] accounts = Trigger.new;
3    
4    // Bulk post to the account feeds.
5
6    List<ConnectApi.BatchInput> batchInputs = new List<ConnectApi.BatchInput>();
7
8    for (Account a : accounts) {
9        ConnectApi.FeedItemInput input = new ConnectApi.FeedItemInput();
10
11        input.subjectId = a.id;
12        
13        ConnectApi.MessageBodyInput body = new ConnectApi.MessageBodyInput();
14        body.messageSegments = new List<ConnectApi.MessageSegmentInput>();
15
16        ConnectApi.TextSegmentInput textSegment = new ConnectApi.TextSegmentInput();
17        textSegment.text = 'Let\'s win the ' + a.name + ' account.';
18
19        body.messageSegments.add(textSegment);
20        input.body = body;
21
22        ConnectApi.ContentCapabilityInput contentInput = new ConnectApi.ContentCapabilityInput();
23        contentInput.title = 'Title';
24
25        ConnectApi.FeedElementCapabilitiesInput capabilities = new ConnectApi.FeedElementCapabilitiesInput();
26        capabilities.content = contentInput;
27
28        input.capabilities = capabilities;
29
30        String text = 'We are words in a file.';
31        Blob myBlob = Blob.valueOf(text);
32        ConnectApi.BinaryInput binInput = new ConnectApi.BinaryInput(myBlob, 'text/plain', 'fileName');
33
34        ConnectApi.BatchInput batchInput = new ConnectApi.BatchInput(input, binInput);
35
36        batchInputs.add(batchInput);
37    }
38
39    ConnectApi.ChatterFeeds.postFeedElementBatch(Network.getNetworkId(), batchInputs);