この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

フィードおよびフィード要素の使用

API バージョン 30.0 以前では、Chatter フィードはフィード項目のコンテナでした。API バージョン 31.0 では、フィードの定義が拡張され、フィード項目モデルに完全には適合しない新しいオブジェクトが追加されました。Chatter フィードは、フィード要素のコンテナになりました。API バージョン 32.0 では、フィード要素はフィード項目または汎用フィード要素のどちらにすることもできます。フィードとフィード要素は Chatter の中核部分であるため、Chatter REST API を使用してアプリケーションを開発するには、これらの理解が不可欠です。

Salesforce ヘルプでは、フィード項目を投稿といいます。

メモ

機能

フィードを多様化する取り組みの一環として、フィード要素の持つさまざまな機能性を個々の機能に分割しました。機能では、一貫した方法でフィードのオブジェクトを操作できます。フィード要素で使用できる機能を判別するためにフィード要素種別を調べないでください。使用可能な機能を明示的に示す機能オブジェクトを調べてください。機能が存在するかどうかを確認することで、フィード要素に対してクライアントが実行できる操作を判別します。

すべてのフィード要素に capabilities プロパティがあり、このプロパティに Feed Element Capabilities レスポンスボディが保持されています。Feed Element Capabilities レスポンスボディには 1 つ以上のプロパティがあり、それぞれのプロパティにフィード要素の機能が保持されています。

機能には、ある操作が可能であることを示す情報と、その操作に関連付けられたデータが含まれます。フィード要素に機能が存在する場合、機能に関連付けられたデータがまだなくてもその機能を使用できます。たとえば、chatterLikes 機能プロパティがフィード要素に存在する場合 (chatterLikes.page.items プロパティ内のいいね! リストにいいね! が含まれているかどうかに関係なく)、コンテキストユーザはそのフィード要素にいいね! と言うことができます。その機能プロパティがフィード要素に存在しない場合、そのフィード要素にいいね! と言うことはできません。

Salesforce UI でのフィード項目の表示

「機能」で学んだように、クライアントは capabilities プロパティを使用して、フィード要素で可能な操作やフィード要素を表示する方法を判別します。フィード項目以外のすべてのフィード要素では、クライアントはフィード要素の種別を知る必要はなく、機能を確認できます。フィード項目には機能がありますが、actor などのプロパティもいくつかあり、これらは機能として公開されていません。このため、フィード項目はフィード要素とは異なる方法で処理する必要があります。

一貫したフィード項目のビューを顧客に提供し、容易に UI を作成する手段を開発者に提供するために、Salesforce UI では、1 つのレイアウトを使用して各フィード項目を表示しています。このレイアウトには常に同じ要素が含まれ、要素は常に同じ位置にあります。変化するのはレイアウト要素のコンテンツのみです。

添付ファイルとコメントを含むフィード項目次のフィード項目レイアウト要素があります。
  1. アクター (Feed Item レスポンスボディの actor プロパティ) — フィード項目の作成者の写真またはアイコン
  2. ヘッダー (Feed Item レスポンスボディの header プロパティ) — コンテキストを提供します。同じフィード項目に、誰がどこに投稿したかに応じて異なるヘッダーを設定できます。たとえば、Gordon がこのフィード項目を自分のプロファイルに投稿したとします。そのフィード項目をグループと共有すると、グループフィードのフィード項目のヘッダーは「Gordon Johnson (元の投稿者: Gordon Johnson)」となります。「元の投稿者」テキストが Gordon のプロファイルのフィード項目へのリンクになります。
  3. 内容 (Feed Item レスポンスボディの body プロパティ) — すべてのフィード項目には内容がありますが、ユーザがフィード項目のテキストを指定しない場合は、内容が null になることがあります。内容は null になる可能性があるため、テキスト表示のデフォルトケースとして使用できません。代わりに、常に値が含まれる、フィード項目のヘッダーの text プロパティを使用します。
  4. 補助内容 (Feed Item レスポンスボディの capabilities プロパティ) — フィード項目の機能の視覚化。「機能」を参照してください。

    attachment プロパティは、API バージョン 32.0 以降でサポートされていません。代わりに、Feed Element Capabilities レスポンスボディを保持する capabilities プロパティを使用して、フィード要素に表示する内容を確認します。

    重要

  5. 作成者タイムスタンプ (Feed Item レスポンスボディの relativeCreatedDate プロパティ) — フィード項目が投稿された日時。フィード項目の作成後 2 日を経過していない場合、日時は相対的なローカライズされた文字列として書式設定されます (「17 分前」、「昨日」など)。それ以外の場合は、日時は絶対的なローカライズされた文字列として書式設定されます。

Salesforce UI でのバンドルの表示

バンドル投稿にはフィード追跡変更が含まれます。Salesforce1 ダウンロード可能アプリケーションでは、バンドル投稿がレコードフィードのみにあります。

メモ

「機能」セクションで学んだように、クライアントは ConnectApi.FeedElement.capabilities プロパティを使用して、フィード要素で可能な操作やフィード要素を表示する方法を判別する必要があります。このセクションでは、フィード要素の表示方法の一例としてバンドルを使用しますが、これらのプロパティはどのフィード要素でも使用できます。

きれいに整理されたフィードをユーザに提供するために、フィード変更追跡のフィード項目はバンドルに集約できます。個々のフィード項目を表示するには、バンドルをクリックします。

Salesforce モバイルブラウザアプリケーションのフィード項目のバンドル

バンドルは、バンドル機能を備えた汎用フィード要素です。次のバンドルレイアウト要素があります。
  1. ヘッダー (Generic Feed Element レスポンスボディの header プロパティ) — フィード変更追跡バンドルの場合、このテキストは「このレコードは更新されました。」です。

    ヘッダーの下にある時間は、Generic Feed Element レスポンスボディの relativeCreatedDate プロパティです。

  2. 補助内容 (Generic Feed Element レスポンスボディの capabilities.bundle.changes プロパティ) — バンドルは、バンドル内の最初の 2 つのフィード変更追跡について fieldNameoldValue、および newValue プロパティを表示します。フィード変更追跡が 3 つ以上ある場合は、バンドルが [すべての更新を表示] リンクを表示します。

フィード要素の表示

ユーザに表示されるフィード要素は、システム管理者によるフィード追跡、共有ルール、および項目レベルセキュリティの設定に応じて異なります。たとえば、ユーザにレコードへのアクセス権がない場合、そのレコードの更新は表示されません。フィード要素の親を表示できるユーザは、そのフィード要素を表示できます。通常、ユーザには次のフィード更新が表示されます。
  • ユーザに @メンションしているフィード要素 (ユーザがそのフィード要素の親にアクセスできる場合)
  • ユーザがメンバーであるグループに @メンションしているフィード要素
  • ユーザが親レコードを表示できるレコードに対するレコード項目の変更 (User、Group、および File レコードを含む)
  • ユーザに投稿されたフィード要素
  • ユーザが所有するか、ユーザがメンバーであるグループに投稿されたフィード要素
  • 標準およびカスタムレコードのフィード要素 (ToDo、行動、リード、取引先、ファイルなど)

フィード種別

フィードには多くの種別があります。各フィード種別は、フィード要素のコレクションを定義するアルゴリズムです。

このアルゴリズム、つまりフィード要素のコレクションは、リリースが変わると変更される可能性があります。

重要

フィード種別はリソースで次のように公開されます。
1/chatter/feeds/feedType
2/chatter/feeds/feedType/subjectId
たとえば、次のリソースは、ニュースフィードとトピックフィードのリソースです。
1/chatter/feeds/news/subjectId
2/chatter/feeds/topics/subjectId
各フィード種別とその説明は、次のとおりです。
  • Bookmarksコンテキストユーザがブックマークとして保存したすべてのフィード項目が含まれます。
  • Company種別 TrackedChange のフィード項目を除くすべてのフィード項目が含まれます。ユーザがフィード項目を表示するには、親への共有アクセス権が必要です。
  • Filesコンテキストユーザがフォローしている人またはグループによって投稿されたファイルを含むすべてのフィード項目が含まれます。
  • Filter — 指定したオブジェクト種別の親を持つフィード項目を含むように絞り込まれたニュースフィードが含まれます。
  • Groupsコンテキストユーザが所有するか、メンバーであるすべてのグループのすべてのフィード項目が含まれます。
  • Home — コミュニティの管理トピックに関連付けられたすべてのフィード項目が含まれます。
  • Moderationモデレーション用にフラグが設定されたすべてのフィード項目が含まれます。このコミュニティモデレーションフィードは、「コミュニティフィードのモデレート」権限を持つユーザのみが使用できます。
  • Mute — コンテキストユーザがミュートしたすべてのフィード項目が含まれます。
  • Newsコンテキストユーザがフォローする人、ユーザがメンバーとなっているグループ、およびユーザがフォローするファイルとレコードからのすべての更新が含まれます。また、親がコンテキストユーザであるレコード、およびコンテキストユーザをメンションするかコンテキストユーザがメンバーとなっているグループをメンションするすべてのフィード項目とコメントのすべての更新も含まれます。
  • Peopleコンテキストユーザがフォローしているすべての人によって投稿されたすべてのフィード項目が含まれます。
  • Record親が指定したレコードであるすべてのフィード項目が含まれます。レコードは、グループ、ユーザ、オブジェクト、ファイル、その他の標準またはカスタムオブジェクトの場合があります。レコードがグループの場合、フィードにはそのグループにメンションしているフィード項目も含まれます。レコードがユーザの場合、フィードにはそのユーザに対するフィード項目のみが含まれます。別のユーザのレコードフィードは取得できません。
  • Toコンテキストユーザのメンションを含むすべてのフィード項目、コンテキストユーザがコメントしたフィード項目、コンテキストユーザが作成し、コメントされたフィード項目が含まれます。
  • Topics指定したトピックを含むすべてのフィード項目が含まれます。
  • UserProfile — フィードで追跡可能なレコードをユーザが変更したときに作成されたフィード項目、親がユーザであるフィード項目、およびユーザに @メンションしているフィード項目が含まれます。このフィードは、グループ更新など、より多くのフィード項目を返すニュースフィードとは異なります。別のユーザのプロファイルフィードを取得できます。
  • Favorites — コンテキストユーザが保存したお気に入りが含まれます。お気に入りには、フィード検索、リストビュー、およびトピックがあります。
  • Filter — 指定したエンティティ種別の親を持つ項目を含むように絞り込まれたニュースフィードが含まれます。

/chatter/feed-elements を使用したフィード項目の投稿

/chatter/feed-elements リソースを使用すると、フィード種別を渡す必要がないため、非常に簡単に効率よくフィード項目を投稿できます。API バージョン 31.0 では、投稿できるフィード要素種別はフィード項目のみです。将来的に他のフィード要素種別が追加される可能性があるため、アプリケーションを今後の変更にも対応できるように、このリソースを使用します。

ヒント

フィード項目を投稿するには、次のリソースを使用します。
1POST /chatter/feed-elements

フィード項目を投稿するときには、標準オブジェクトまたはカスタムオブジェクトの子を作成します。subjectId 要求パラメータ、または Feed Item Input リクエストボディの subjectId プロパティに、親オブジェクトを指定します。

投稿されたフィード項目の parent プロパティには、親オブジェクトに関する情報が含まれます。

ユーザプロファイルへの投稿
次の例では、要求パラメータを使用して、テキスト投稿をコンテキストユーザのユーザプロファイルに投稿します。
1POST /chatter/feed-elements?feedElementType=FeedItem&subjectId=me&text=Test
subjectId に、別名 me を指定します。コンテキストユーザのユーザ ID を指定することもできます。
新しく投稿されたフィード項目の parent プロパティには、コンテキストユーザの User Summary レスポンスボディが含まれます。
別のユーザへの投稿
次の例では、リクエストボディを使用して、別のユーザに投稿します。subjectId プロパティでは、ユーザの ID を指定します。
1POST /chatter/feed-elements
2
3{ 
4   "feedElementType":"FeedItem",
5   "subjectId":"005RR000000DmOg",
6   "body" : {
7      "messageSegments" : [
8      {
9         "type" : "Text",
10         "text" : "When should we meet for release planning?"
11      }
12      ]
13   }
14}
新しく投稿されたフィード項目の parent プロパティには、対象ユーザの User Summary レスポンスボディが含まれます。
グループへの投稿
次の例では、リクエストボディを使用して、グループに投稿します。subjectId プロパティでは、グループ ID を指定します。
1POST /chatter/feed-elements
2
3{ 
4   "feedElementType":"FeedItem",
5   "subjectId":"0F9RR0000004CPw",
6   "body" : {
7      "messageSegments" : [
8      {
9         "type" : "Text",
10         "text" : "When should we meet for release planning?"
11      }
12      ]
13   }
14}
新しく投稿されたフィード項目の parent プロパティには、指定されたグループの Group レスポンスボディが含まれます。
レコード (ファイルや取引先など) への投稿
次の例では、リクエストボディを使用して、レコードフィードでユーザにメンションします。subjectId プロパティでは、レコード ID を指定します。
1POST /chatter/feed-elements
2
3{ 
4   "feedElementType" : "FeedItem",
5   "subjectId" : "001RR000002G4Y0",
6   "body" : {
7      "messageSegments" : [
8      {
9         "type" : "Mention",
10         "id" : "005RR000000DmOg"
11      },
12      {
13         "type" : "Text",
14         "text" : " Have you checked on this account recently?"
15      }
16      ]
17   }
18}
新しいフィード項目の parent プロパティは、指定されたレコードタイプに応じて異なります。レコードタイプが File の場合、親は File Summary レスポンスボディです。レコードタイプが Group の場合、親は Group レスポンスボディです。レコードタイプが User の場合、親は User Summary レスポンスボディです。その他すべてのレコードタイプの場合、親は Record Summary レスポンスボディです。

フィードからのフィード要素の取得

フィード要素を含むフィードを返すには、次のメソッドをコールします。API バージョン 31.0 では、フィード要素種別はフィード項目とバンドルのみですが、これは今後変更される可能性があります。

ヒント

フィードからフィード要素を取得する方法は、どのフィード種別でも似ていますが同一ではありません。

会社フィード、ホームフィードまたはモデレーションフィードからフィード要素を取得する場合��、件名 ID を指定しないでください。
お気に入りフィードおよびフィルタフィードからフィード要素を取得するには、favoriteId または keyPrefix を指定します。keyPrefix はオブジェクト ID の最初の 3 文字であり、オブジェクト種別を示します。次のフィードの場合、subjectId は、コンテキストユーザの ID または別名 me である必要があります。
レコードフィードからフィード要素を取得するには、レコード ID を指定します。
フィード種別 リソース
Record /chatter/feeds/record/recordId/feed-elements

recordId は、フィードをサポートする任意のタイプのレコードにすることができます (グループを含む)。Salesforce UI のグループページ上のフィードは、レコードフィードです。

ヒント

その他すべてのフィード種別からフィード要素を取得するには、件名 ID を指定します。別のフィードを指定するには、feedType を置き換えます。ユーザプロファイルフィードとトピックフィードを除く、次の表のすべてのフィード種別で、subjectId はコンテキストユーザの ID または別名 me である必要があります。
フィード種別 リソース
Bookmarks、Files、Groups、Mute、News、People、To、Topics、User Profile /chatter/feeds/feedType/subjectId/feed-elements

例: /chatter/feeds/news/me/feed-elements