Bitrix24RestApiClient 1.0.2
See the version list below for details.
dotnet add package Bitrix24RestApiClient --version 1.0.2
NuGet\Install-Package Bitrix24RestApiClient -Version 1.0.2
<PackageReference Include="Bitrix24RestApiClient" Version="1.0.2" />
paket add Bitrix24RestApiClient --version 1.0.2
#r "nuget: Bitrix24RestApiClient, 1.0.2"
// Install Bitrix24RestApiClient as a Cake Addin
#addin nuget:?package=Bitrix24RestApiClient&version=1.0.2
// Install Bitrix24RestApiClient as a Cake Tool
#tool nuget:?package=Bitrix24RestApiClient&version=1.0.2
bitrix24-csharp-sdk
A C# library for the Bitrix24 REST API
Инициализация клиента
На данный момент клиент поддерживает только один способ авторизации: входящий вебхук. Инициализировать его можно следующим образом:
ILogger<Bitrix24Client> logger = ...
var client = new Bitrix24Client("<ссылка на входящий вебхук>", logger);
var bitrix24 = new Bitrix24(client);
Возможности и структура клиента
На данный момент клиент поддерживает частично работу с сделками, лидами, контактами, компаниями и пользователями.
Для всех этих сущностей реализовано создание, изменение, удаление, вывод списка, получение по идентификатору и получение списка полей.
Вывод списка поддерживает сортировку, фильтрацию и выборку указанных полей. В фильтрации реализовано сопоставление по знаку равенства. Остальные(больше, меньше, Like-подобная операция) - в стадии разработки.
Создание и удаление поддерживают все операции кроме изменения и удаления телефонов и почт.
Для удобства пользования библиотекой некоторые свойства в модели битрикса приведены к более удобному для использования формату.
Для примера тип char
с возможными значениями Y
и N
приведен к типу bool.
Причем это преобразование работает как при чтении, так и при записи сущностей в API.
Чтобы было легче ориентироваться в библиотеке и искать нужную сущность, в библиотеке по возможности сохранена та структура, которая есть в документации к REST API битрикс24. Ниже представлена текущая структура клиента:
Bitrix24.Crm
.Deals
.Add(...)
.Add<TEntity>(...)
.Update(...)
.Update<TEntity>(...)
.Get(...)
.Get<TEntity>(...)
.Delete(...)
.List(...)
.List<TEntity>(...)
.First(...)
.First<TEntity>(...)
.Leads
...
.Contacts
...
.Companies
...
.Timeline
.Comments
.Add(...)
Bitrix24.Users
.Add(...)
.Add<TEntity>(...)
.Update(...)
.Update<TEntity>(...)
.Get(...)
.Get<TEntity>(...)
.Delete(...)
.Search(...)
.Search<TEntity>(...)
.First(...)
.First<TEntity>(...)
Пример получения сделки из API
int dealId = 1;
GetResponse response = await bitrix24.Crm.Deals.Get(dealId, x=>x.Id, x=>x.CompanyId);
Deal deal = response.Result;
Если Вам требуется получить сделку с пользовательскими полями, то это можно сделать так:
public class CustomDeal: Deal
{
[JsonProperty("UF_CRM_1642491608176")]
public string CustomField { get; set; }
}
...
int dealId = 1;
GetResponse response = await bitrix24.Crm.Deals.Get<CustomDeal>(dealId, x=>x.Id, x=>x.CustomField);
Deal deal = response.Result;
Пример удаления сделки
int dealId = 1;
DeleteResponse response = await bitrix24.Crm.Deals.Delete(dealId);
bool isDeleted = response.Result;
Пример создания сделки
AddResponse response = await bitrix24.Crm.Deals.Add(x=>x
.SetField(x=>x.CompanyId, 1)
.AddEmails(x=>x
.SetField("work@test.ru", EmailType.Рабочий)
.SetField("other@test.ru", EmailType.Другой))
.AddEmails(x => x
.SetField("+79222444333", EmailType.Рабочий)
.SetField("+79222444333", EmailType.Другой)));
int dealId = response.Result;
И вариант с пользовательскими полями:
public class CustomDeal: Deal
{
[JsonProperty("UF_CRM_1642491608176")]
public string CustomField { get; set; }
}
...
AddResponse response = await bitrix24.Crm.Deals.Add<CustomDeal>(x=>x
.SetField(x=>x.CustomField, "1"));
int dealId = response.Result;
Пример изменения сделки
int dealId = 1;
AddResponse response = await bitrix24.Crm.Deals.Update(dealId, x=>x
.SetField(x=>x.CompanyId, 1)
.AddEmails(x=>x
.SetField("work@test.ru", EmailType.Рабочий)
.SetField("other@test.ru", EmailType.Другой))
.AddEmails(x => x
.SetField("+79222444333", EmailType.Рабочий)
.SetField("+79222444333", EmailType.Другой)));
int dealId = response.Result;
И вариант с пользовательскими полями:
public class CustomDeal: Deal
{
[JsonProperty("UF_CRM_1642491608176")]
public string CustomField { get; set; }
}
...
int dealId = 1;
AddResponse response = await bitrix24.Crm.Deals.Update<CustomDeal>(dealId, x=>x
.SetField(x=>x.CustomField, "1"));
int dealId = response.Result;
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net5.0
- Flurl (>= 3.0.2)
- Flurl.Http (>= 3.2.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.57 | 644 | 1/24/2024 |
1.1.56 | 79 | 1/24/2024 |
1.1.55 | 1,549 | 4/25/2022 |
1.1.54 | 402 | 4/25/2022 |
1.1.53 | 404 | 4/25/2022 |
1.1.52 | 414 | 4/25/2022 |
1.1.51 | 365 | 4/25/2022 |
1.1.50 | 410 | 4/6/2022 |
1.1.49 | 397 | 4/5/2022 |
1.1.48 | 414 | 4/5/2022 |
1.1.47 | 399 | 4/5/2022 |
1.1.46 | 394 | 4/25/2022 |
1.1.45 | 412 | 4/4/2022 |
1.1.44 | 414 | 4/4/2022 |
1.1.43 | 396 | 4/4/2022 |
1.1.42 | 442 | 3/22/2022 |
1.1.41 | 413 | 3/15/2022 |
1.1.40 | 388 | 3/15/2022 |
1.1.39 | 414 | 3/9/2022 |
1.1.38 | 392 | 3/5/2022 |
1.1.37 | 415 | 3/4/2022 |
1.1.36 | 420 | 3/4/2022 |
1.1.35 | 405 | 3/2/2022 |
1.1.34 | 401 | 3/2/2022 |
1.1.33 | 430 | 3/2/2022 |
1.1.32 | 409 | 3/2/2022 |
1.1.31 | 439 | 3/2/2022 |
1.1.30 | 417 | 3/2/2022 |
1.1.29 | 415 | 3/1/2022 |
1.1.28 | 408 | 3/1/2022 |
1.1.26 | 425 | 2/28/2022 |
1.1.25 | 399 | 2/28/2022 |
1.1.24 | 399 | 2/28/2022 |
1.1.23 | 395 | 2/28/2022 |
1.1.22 | 392 | 2/28/2022 |
1.1.21 | 373 | 2/25/2022 |
1.1.20 | 402 | 2/24/2022 |
1.1.19 | 407 | 2/21/2022 |
1.1.18 | 404 | 2/18/2022 |
1.1.17 | 405 | 2/18/2022 |
1.1.16 | 409 | 2/15/2022 |
1.1.15 | 399 | 2/15/2022 |
1.1.14 | 392 | 2/14/2022 |
1.1.13 | 390 | 2/14/2022 |
1.1.12 | 403 | 2/14/2022 |
1.1.11 | 419 | 2/14/2022 |
1.1.10 | 397 | 2/14/2022 |
1.1.9 | 400 | 2/14/2022 |
1.1.8 | 396 | 2/14/2022 |
1.1.7 | 400 | 2/14/2022 |
1.1.6 | 402 | 2/10/2022 |
1.1.5 | 405 | 2/10/2022 |
1.1.4 | 415 | 2/9/2022 |
1.1.3 | 428 | 2/9/2022 |
1.1.2 | 424 | 2/7/2022 |
1.1.1 | 406 | 2/7/2022 |
1.1.0 | 413 | 2/4/2022 |
1.0.4 | 429 | 2/4/2022 |
1.0.3 | 408 | 2/3/2022 |
1.0.2 | 440 | 2/3/2022 |
1.0.1 | 401 | 2/2/2022 |
1.0.0 | 412 | 2/2/2022 |
Это версия еще не пригодна к использования в продакшене. Если Вам понравилась моя идея по созданию библиотеки, но нашли ошибку или не нашли нужную Вам фичу, то напишите, пожалуйста, мне по почте timergalin@gmail.com или в вайбер по номеру +79222404311 и я внесу правки.