ConnectApi クラスとその他の Apex クラスの違い
ConnectApi クラスとその他の Apex クラスには、さらに次のような違いがあります。
- システムモードとコンテキストユーザ
- Chatter in Apex メソッドはシステムモードでは実行されず、現在のユーザ (コンテキストユーザとも呼ばれる) のコンテキストで実行されます。メソッドは、現在のユーザがアクセス権を持つものすべてにアクセスできます。Chatter in Apex は、runAs システムメソッドをサポートしていません。subjectId 引数を取るメソッドの多くで、その対象はコンテキストユーザである必要があります。これらの場合、ID の代わりに文字列 me を使用してコンテキストユーザを指定できます。
- with sharing と without sharing
- Chatter in Apex は、with sharing および without sharing キーワードを無視します。代わりに、すべてのセキュリティ、項目レベルの共有、および表示設定は、コンテキストユーザによって制御されます。たとえば、コンテキストユーザが非公開グループのメンバーである場合、ConnectApi クラスは、そのグループに投稿できます。コンテキストユーザが非公開グループのメンバーではない場合、コードはそのグループのフィード項目を参照できず、グループへの投稿はできません。
- 非同期操作
- 一部の Chatter in Apex 操作は非同期、つまりすぐには行われません。たとえば、コードでユーザに対するフィード項目を追加しても、ニュースフィードですぐには使用できません。また、写真を追加しても、すぐには使用できません。テストの場合は、写真を追加してもすぐには取得できないことになります。
- Apex REST では XML がサポートされない
- Apex REST では、Chatter in Apex オブジェクトの XML 逐次化および並列化はサポートされません。Apex REST では、Chatter in Apex オブジェクトの JSON 逐次化および並列化はサポートされません。
- 空のログエントリ
- Chatter in Apex オブジェクトに関する情報は、VARIABLE_ASSIGNMENT ログイベントには表示されません。
- Apex SOAP Web サービスがサポートされない
- Chatter in Apex オブジェクトは、キーワード webservice で指示された Apex SOAP Web サービス内では使用できません。