Вставьте данные формы в Salesforce - PullRequest
0 голосов
/ 01 июня 2019

Я попытался вставить данные формы из sitecore в salesforce с помощью REST API. Вот мой пример кода.

  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 голосов
/ 01 июня 2019

Здесь я вижу два вопроса.

  1. Нет аутентификации в Salesforce REST API. Вы должны пройти аутентификацию перед вызовом Salesforce и должны указать идентификатор сеанса, полученный в процессе аутентификации, в заголовках вашего запроса REST.

    Salesforce предоставляет примеры аутентификации в Java (но не в C #) с использованием потока OAuth веб-сервера. Платформа поддерживает много OAuth-потоков , и вам нужно будет определить, какой вариант подходит для вашего приложения. Если вы выполняете межсерверную интеграцию, веб-сервер или JWT, вероятно, являются правильным выбором.

    Если вы не хотите использовать OAuth - и вам абсолютно необходимо - вы можете получить Session Id, сделав login() вызов SOAP API вместо . Однако это не рекомендуется.

    Получив идентификатор сеанса, вы включите его в качестве заголовка Authentication: Bearer <Id>.

    Единственный способ обойти аутентификацию - это предоставить пользовательскую конечную точку REST Apex как часть общедоступного сайта Force.com. Это редко хороший выбор дизайна.

  2. Вы используете ресурсы Composite Tree, что, вероятно, больше, чем нужно для создания записи Lead, если вы не пытаетесь добавить связанные записи вместе с ней. Для простого создания записи просто используйте конечную точку Создать запись .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...