我的任务是将我们本土的多客户 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 的 401(未经授权)回复,即使我正在传递 SFDC 提供的安全令牌。
REST API 是这种“无人值守”访问的正确方法吗?任何人都可以建议我在我的代码中做错了什么,或者就如何使其工作提供智慧之言吗?
非常感谢。