Salesforce Chatter連携機能開発

イシュー

  • Visualforceから Chatterへ投稿などしたい

参考

FeedItem

  • Salesforce上 FeedItemとして取り扱えばOKっぽい
  • ConnectApi はどういった場合に使う?

    参考

  • FeedItem

実装

trigger EventAddToChatterTrigger on Event (after insert) {

  List<Event> records = Trigger.new;
  
  CollaborationGroup objCollaborationGroup = null;
  Boolean  IsPostRecordFeed = False;
  try {
    SGSettings__c sgSettings = [SELECT Id, Name, IsPostRecordFeed__c, NotificationChatterGroup__c FROM SGSettings__c LIMIT 1];
    String groupName = sgSettings.NotificationChatterGroup__c;
    objCollaborationGroup  = [SELECT Id ,Name FROM CollaborationGroup WHERE Name =: groupName LIMIT 1];
    IsPostRecordFeed = sgSettings.IsPostRecordFeed__c;
    
  } catch( Exception e) {
    // ChatterGroup取得
    objCollaborationGroup = [SELECT Id ,Name FROM CollaborationGroup LIMIT 1];
  }

  List<FeedItem> feedItemList = new List<FeedItem>();
  for(Event record : records) {
    // フィードのINSERT
    FeedItem feed = new FeedItem();
    feed.parentId = objCollaborationGroup.Id;
    feed.body = record.FeedComment__c;
    feedItemList.add(feed);
    
    // レコードフィードへも投稿
    if(IsPostRecordFeed) {
      feed = new FeedItem();
      feed.parentId = record.WhatId;
      feed.body = record.FeedComment__c;
      feedItemList.add(feed);
    }

  }

  insert feedItemList;
  
}

レコードフィード

  • 投稿したオブジェクトレコードのフィード
    • レコードフィードには、 ParentID = <レコード ID>を含めます

参考