3
Bitrix24 CRMwebhook functional에 추가하여 CRM에 리드 (클라이언트)를 추가하십시오. 모든 설명서는 PHP로 작성된 있지만 ASP.NET을 사용하고 싶습니다. 여기에 그들이 PHP에서 어떻게하는지 :Bitrix24 Rest API 게시물을 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);
나는 ASP.NET을 사용하여 같은 일을하려하지만 응답으로 400 오류가 발생합니다. 나는 거의 문제가 요청 매개 변수 인 라인 const string data = @"[{""fields"":{""title"":""Test""}}]";
에 있다고 확신한다. 나는 수많은 조합을 시도했지만 아무 것도 효과가 없었습니다.
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;
}
이 답변에 고맙습니다. 한 가지 : 키워드이기 때문에'params'를'@params'로 변경해야했습니다. 다른 모든 것은 잘 작동했습니다. :) – randomsuffer
죄송합니다. 죄송합니다, 나는 다른 방법에 대한 내 소스를 조사하고 SO 응답에 직접 "예제로"코드를 썼습니다. 내 대답이 수정되었습니다. – Dmitry