Bitrix24 CRM a webhook functional pour ajouter des prospects (clients) à CRM. Toute la documentation est écrite sur PHP, mais je veux utiliser ASP.NET. Voilà comment ils le font sur php:La demande de publication de l'API de repos Bitrix24 à l'aide d'ASP.NET
$queryUrl = 'https://restapi.bitrix24.ru/rest/1/31uhq2q855fk1foj/crm.lead.add.json';
$queryData = http_build_query(array(
'fields' => array(
"TITLE" => "NEW LEAD"
),
'params' => array(
"REGISTER_SONET_EVENT" => "Y"
)
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData
));
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
Je suis en train de faire la même chose en utilisant ASP.NET, mais obtenir l'erreur 400 comme une réponse. Je suis presque sûr que le problème est dans les paramètres de demande, ligne const string data = @"[{""fields"":{""title"":""Test""}}]";
. J'ai essayé des tonnes de combinaisons, mais rien n'a fonctionné.
const string url = @ "https://companyname.bitrix24.ru/rest/14/31uhq2q855fk1foj/crm.lead.add.json";
const string data = @"[{""fields"":{""title"":""Test""}}]";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(url);
byte[] cred = Encoding.UTF8.GetBytes("email:password");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred));
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpContent content = new StringContent(data, Encoding.UTF8, "application/json");
HttpResponseMessage messge = client.PostAsync(url, content).Result;
string description;
if (messge.IsSuccessStatusCode) {
string result = messge.Content.ReadAsStringAsync().Result;
description = result;
}
Merci beaucoup pour cette réponse.Une chose: j'ai dû changer 'params' à' @ params' parce que c'est un mot-clé.Tout d'autre a bien fonctionné :) – randomsuffer
Oups, oui. Désolé, j'ai regardé dans ma source pour une autre méthode et j'ai écrit le code "par exemple" directement dans la réponse SO. J'ai corrigé ma réponse. – Dmitry