API を介して任意のセールスフォース オブジェクトのすべてのリスト ビューを取得したいと考えています。どうやってするか?
3 に答える
これは古い質問ですが、REST API と Salesforce のクエリ言語を使用すると、次のエンドポイントを使用できます。
{your instance url}/services/data/v32.0/query?q=SELECT Id,Name FROM {object type}
また
エンドポイントを使用します。
{your instance url}/services/data/v32.0/sobjects/{object type}/listviews
いくつかの例:
すべてのリストビューを取得するには: https://na16.salesforce.com/services/data/v32.0/query?q=SELECT Id,Name FROM ListView
アカウントのオブジェクト タイプですべてのリストビューを取得するには: https://na16.salesforce.com/services/data/v32.0/sobjects/Account/listviews
PHP の場合:
$url = "{your instance url}/services/data/v32.0/sobjects/Account/listviews";
$headers = array('Authorization: OAuth ' . {your access token});
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers);
$requestBody = curl_exec ($ch);
$result = json_decode($requestBody, true);
もちろん、アクセス トークンとインスタンス URL を取得するには、最初に OAUTH でログインする必要があります。
探しているのが SOAP API である場合はdescribeSObject
、組織のすべてのデータに対して、特定のオブジェクトまたは「describeGlobal」に対して呼び出されます。
SOAP メッセージについては、以下の参照リンクを参照してください: http://wiki.developerforce.com/page/Sample_SOAP_Messages_(10.0_API)
特定のオブジェクトのStandardSetControllerを作成します (インスタンス化に使用するクエリには「LIMIT 1」などを指定できます。すべてのレコードを選択する必要はありません)。次に、を使用しますgetListViewOptions()
。
現在のユーザーに表示されるビューが返されることに注意してください (したがって、公開されているビューと「自分だけに表示される」とマークされているビューのみ)。
EDIT: 外部から(SOAPまたはREST APIを介して)アクセスするには...私は恐れているREST呼び出しでこれらを取得する方法を知りません。少しの Apex を作成し、このデータを返すカスタム REST リソースを公開する必要がある場合があります。それほど難しくありません。例については、 http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_rest_code_sample_basic.htmを参照してください。