2011-06-30

Force.com : NewsFeed メモ

 
@途中



NewsFeed メモ



○ 一覧の取得

※ Summer'11 から FeedPost は非推奨となり、API バージョン 22.0 以降では使用できない
  → pdf: Salesforce.com Summer '11 リリースノート
NewsFeed[] nfs = [SELECT Id, Type, ParentId, Parent.Name, CreatedBy.Id, CreatedBy.Name, CreatedDate, FeedPost.Body, FeedPost.Title, FeedPost.LinkUrl
                    ,(SELECT Id, FieldName, OldValue, NewValue FROM FeedTrackedChanges)
                    ,(SELECT Id, CreatedDate, CreatedById, CreatedBy.Name, CommentBody FROM FeedComments ORDER BY CreatedDate DESC)
                    FROM NewsFeed 
                    ORDER BY CreatedDate DESC, Id DESC];

for(NewsFeed nf : nfs) {
    String s = '\n********** ********** ********** ********** **********';
    s += '\n type: ' + nf.Type;
    s += '\n parent id: ' + nf.ParentId;
    s += ', parent name: ' + nf.Parent.Name;
    s += '\n created by id: ' + nf.CreatedBy.Id;
    s += ', created by name: ' + nf.CreatedBy.Id;
    s += ', created date: ' + nf.CreatedDate;
    s += '\n feed post body: ' + nf.FeedPost.Body;
    s += '\n feed post title: ' + nf.FeedPost.Title;
    s += ', feed post link url: ' + nf.FeedPost.LinkUrl;

    if(nf.FeedTrackedChanges.size() > 0) {
        // [フィード追跡]に関する情報
        // [type: TrackedChange]の場合に設定される
        s += '\n * feed teacked changes';
        for(FeedTrackedChange ftc : nf.FeedTrackedChanges) {
            s += '\n* field name: ' + ftc.FieldName;
            s += ', old value: ' + ftc.OldValue;
            s += ', new value: ' + ftc.NewValue;
        }
    }

    if(nf.FeedComments.size() > 0) {
        // Chatter に投稿されたレコードのコメントに関する情報
        s += '\n * feed comments';
        for(FeedComment fc : nf.FeedComments) {
            s += '\n* created by id: ' + fc.CreatedBy.Id;
            s += ', created by name: ' + fc.CreatedBy.Id;
            s += ', created date: ' + fc.CreatedDate;
            s += ', comment body: ' + fc.CommentBody;
        }
    }
    s += '\n********** ********** ********** ********** **********';
    System.debug(s);
}



○ メモ

  • 実行ユーザの投稿か、実行ユーザがフォローしているユーザもしくはレコードの投稿のみを取得する(ユーザの[ホーム]タブに表示される情報を取得する)
  • 他のユーザの投稿を取得するには UserProfileFeed を使用する



◇ 環境

  • Salesforce - Developer Edition - API バージョン 20.0



◇ 参考

 

0 件のコメント:

コメントを投稿