3
Bitrix24 CRMwebhook functionalがCRMにリード(クライアント)を追加しました。すべてのドキュメントはPHPで書かれていますが、私はASP.NETを使いたいと思います。ここで彼らはPHPでそれを行う方法です:Bitrix24 Rest API投稿の投稿:
$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