自社開発のマルチクライアント CRM を Salesforce.com に統合する任務を負っています。各クライアントの CRM データストアから Salesforce に情報をプッシュするサーバーベースのサービスを作成します。SFDC REST API を使用したいのですが、必要に応じて SOAP API を使用できます。
使用する最適なセキュリティ メカニズムを理解するのに苦労しています。ソリューションはサーバーベースであるため、SFDC への接続時にユーザーの操作を必要としないことが不可欠です。サーバーは、ユーザーがログイン資格情報を提供しなくても、SFDC への安全な接続を確立できる必要があります。
これまでのところ、REST API と OAuth2.0 を試してきました。テスト用の SFDC アカウントをセットアップし、その中でアプリを構成して、コンシューマー キー、シークレット キー、およびコールバック URI を取得しました。これはすべて機能し、コールバック ページはセキュリティ トークンを受け取ります。私のコールバック ページは、提供されたトークンを次のように使用します。
string rc = "";
try
{
string uri = "https://eu2.salesforce.com/services/data/v20.0/sobjects/";
System.Net.WebRequest req = System.Net.WebRequest.Create(uri);
req.Method = "GET";
req.Headers.Add("Authorization: Bearer " + token);
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
rc = "code=" + code + ", response=" + sr.ReadToEnd().Trim();
}
catch (Exception ex)
{
rc = "45435465 Token=" + token + ", err=" + ex.Message;
}
return rc;
問題は、これを実行するたびに、SFDC から提供されたセキュリティ トークンを渡しているにもかかわらず、SFDC から 401 (無許可) 応答を受信することです。
REST API は、このような「無人」アクセスの正しいアプローチですか?コードで間違っていることを誰かにアドバイスしたり、これを機能させる方法について知恵の言葉を提供したりできますか?
どうもありがとう。