Chatter in Apxを利用してコメントをメンション付きで投稿する
タイトル通り。
ChatterのコメントをApex経由で@
メンション付きで投稿する。
Chatterコメントは、FeedComment
というオブジェクト名で作成されているので、
このオブジェクトにレコードをインサートすればコメントは作成出来る。
しかしその場合はコメントにそのまま@ユーザ名
とつけてもメンションとして認識されない。
そのため、メンションをapex経由でつけるには、Chatter in Apex、ConnectAip
を使用する。
コメントの投稿
Chatter in Apexのドキュメントは以下。(英語)
Chatter in Apex
この中で、コメントの投稿には、postCommentToFeedElement
メソッドを使う。
以下のサンプルがほぼそのまま。
Post a Comment with a Mention
以下、順番に組み立ててみる。
postCommentToFeedElement
postCommentToFeedElement
の引数は以下となっている。
communityId
投稿するユーザーのコミュニティのID。null
可。feedElementId
親となる投稿(FeedItem
)のSFIDcomment
投稿するコメントの情報feedElementFileUpload
投稿するファイルのバイナリ情報
(第二引数)comment
ConnectApi.CommentInput
型。
ConnectApi.CommentInput Class
body
メソッドに本文などの情報を入力する
body
ConnectApi.MessageBodyInput
型
ConnectApi.MessageBodyInput Class
メソッドは、mesageSegments
のみ。
mesageSegments
List<ConnectApi.MessageSegmentInput>
型
ConnectApi.MessageSegmentInput
クラスは、入力したい内容の型のクラスが継承している。
テキストの入力内容は、ConnectApi.TextSegmentInput
クラスを使用する。
メンションの場合は、ConnectApi.MentionSegmentInput
クラス、となっている。
ConnectApi.MessageSegmentInput Class
ConnectApi.TextSegmentInput
text
メソッドのみ。ここに投稿する本文を入れる。
ConnectApi.TextSegmentInput Class
ConnectApi.MentionSegmentInput
id
メソッドにメンションを送りたいユーザーのIDを入力する。
もしくは、APIバージョン38以降なら、username
メソッドでユーザー名も利用出来るよう。
ConnectApi.MentionSegmentInput Class
コード
一通りのコード全文は以下。
引数で、入力内容、親の投稿ID、メンションをつけるユーザのIDを渡すようにしている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
返却されるConnectApi.Comment
クラスは以下。
ConnectApi.Comment Class