将表单数据插入Salesforce

时间:2019-06-01 08:55:18

标签: c#-4.0 salesforce

我试图使用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的流程正确吗?

1 个答案:

答案 0 :(得分:0)

我在这里看到两个问题。

  1. 没有对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站点的一部分。这很少是一个好的设计选择。

  2. 您正在使用“复合树”资源,这可能比创建潜在顾客记录所需的资源更多,除非您尝试与其一起添加相关记录。对于简单的记录创建,只需使用Record Create端点即可。