Как разместить JSON данных в Pardot API через Httpclient - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь опубликовать данные JSON в Pardot. Я использовал информацию из здесь для вызова API Pardot и в настоящее время использую обработчик форм Pardot для публикации данных. Я хочу знать, смогу ли я получить данные через вызов Pardot API, используя CREATE или UPSERT вместо использования обработчика формы. Ниже мой код

class SendingDataToPardot
    {
        public string Login()
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            var url = "https://pi.pardot.com/api/login/version/3";
            string apiKey = null;


            var loginInfo = new Dictionary<string, string>
            {
                {"email", "xx"},
                {"password", "xxx"},
                {"user_key", "xxx"}
            };

            var httpContent = new FormUrlEncodedContent(loginInfo);

            using (var client = new HttpClient())
            {
                HttpResponseMessage response = client.PostAsync(url, httpContent).Result;

                if (response.IsSuccessStatusCode)
                {
                    string resultValue = response.Content.ReadAsStringAsync().Result;
                    apiKey = XDocument.Parse(resultValue).Element("rsp").Element("api_key").Value;


                    return apiKey;

                }
                else
                {
                    return null;
                }


            }
        }

        public string POST()
        {
            string Api_Key = Login();
            var url = "form handler url";

            var contactFormData = new Dictionary<string, string>
            {
                {"email", "test@test.com"},
                {"FirstName", "xxx"},
                {"LastName", "xxxxx"},
                {"Comments", "this is a test"}

            };

            var data= new FormUrlEncodedContent(contactFormData);

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Api_Key);
                HttpResponseMessage response = client.PostAsync(url, data).Result;
                string result = response.Content.ReadAsStringAsync().Result;
                return result;
            }

        }
    }
}

1 Ответ

0 голосов
/ 10 марта 2020

Для большинства API-интерфейсов, доступных для Pardot, вам нужно XML работать с ним.

Похоже, вы используете Java, так что вам может повезти, если вы используете библиотеку publi c, даже если просто для понимания шаблонов коммуникации (нам пришлось переписать его для наших целей, но он послужил отличным планом).

Взгляните на проект https://github.com/Crim/pardot-java-client и посмотрите если это поможет вам.

...