我试图使用REST API将表单数据从sitecore插入到salesforce。这是我的代码示例。
postAsync("https://pru-sg--DevSCore.cs58.my.salesforce.com/services/data/v45.0/composite/tree/Lead__c",JSon Data);
async static void postAsync(string url, JObject o)
{
using (HttpClient client = new HttpClient())
{
var param = Newtonsoft.Json.JsonConvert.SerializeObject(o);
HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json");
using (HttpResponseMessage response = await client.PostAsync(string.Format(url), contentPost).ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode()))
{
if (response.IsSuccessStatusCode)
{
using (HttpContent content = response.Content)
{
string myContent = await content.ReadAsStringAsync();
HttpContentHeaders headers = content.Headers;
Console.WriteLine(myContent);
Console.WriteLine(headers);
}
}
else { Console.WriteLine("This is doing my head in!!!!!!!!!!"); }
}
}
}
它不会将数据插入到salesforce中。我需要在哪里使用客户端安全性和安全性令牌?如何将数据插入Salesforce?将数据插入到Salesforce的流程正确吗?
答案 0 :(得分:0)
我在这里看到两个问题。
没有对Salesforce REST API的身份验证。您必须在致电Salesforce之前进行身份验证,并且必须在REST请求的标头中提供从身份验证过程中收到的会话ID。
Salesforce使用Web Server OAuth流提供Java(而非C#)中authenticating的示例。该平台支持many OAuth flows,您需要确定哪种是适合您的应用程序的选择。如果您要进行服务器到服务器的集成,则Web Server或JWT可能是正确的选择。
如果您不想使用OAuth(绝对应该),则可以通过对SOAP API instead进行login()
调用来 获取会话ID。不过不推荐。
获得会话ID后,您将其包含为Authentication: Bearer <Id>
标头。
围绕身份验证的唯一方法是将自定义的Apex REST端点公开为Force.com站点的一部分。这很少是一个好的设计选择。
您正在使用“复合树”资源,这可能比创建潜在顾客记录所需的资源更多,除非您尝试与其一起添加相关记录。对于简单的记录创建,只需使用Record Create端点即可。