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