C# Örnekleri
C# ile KolayBi API'sini kullanma örnekleri.
🔐 Yetkilendirme
Access Token Alma
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class KolayBiApi
{
private readonly HttpClient _httpClient;
public KolayBiApi()
{
_httpClient = new HttpClient();
}
public async Task<string> GetAccessTokenAsync(string apiKey, string channel)
{
var request = new HttpRequestMessage(HttpMethod.Post,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/access_token");
request.Headers.Add("Channel", channel);
var requestData = new { api_key = apiKey };
var jsonContent = JsonConvert.SerializeObject(requestData);
request.Content = new StringContent(jsonContent, System.Text.Encoding.UTF8, "application/json");
var response = await _httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(content);
return data.data;
}
}
👥 Cari Hesap İşlemleri
Müşteri Listeleme
public async Task<dynamic> ListAssociatesAsync(string accessToken, string channel)
{
var request = new HttpRequestMessage(HttpMethod.Get,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await _httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
Müşteri Oluşturma
public async Task<dynamic> CreateAssociateAsync(string accessToken, string channel, Dictionary<string, string> associateData)
{
var formContent = new FormUrlEncodedContent(associateData);
var request = new HttpRequestMessage(HttpMethod.Post,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates")
{
Content = formContent
};
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await _httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
📦 Ürün İşlemleri
Ürün Listeleme
public async Task<dynamic> ListProductsAsync(string accessToken, string channel)
{
var request = new HttpRequestMessage(HttpMethod.Get,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/products");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await _httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
🧾 Fatura İşlemleri
Fatura Listeleme
public async Task<dynamic> ListInvoicesAsync(string accessToken, string channel)
{
var request = new HttpRequestMessage(HttpMethod.Get,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await _httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
📝 Kullanım Örneği
public class Program
{
public static async Task Main(string[] args)
{
var api = new KolayBiApi();
try
{
// Access token al
var accessToken = await api.GetAccessTokenAsync("YOUR_API_KEY", "YOUR_CHANNEL");
var channel = "YOUR_CHANNEL";
// Müşteri listesi al
var associates = await api.ListAssociatesAsync(accessToken, channel);
Console.WriteLine($"Toplam müşteri sayısı: {associates.data.Count}");
// Yeni müşteri oluştur
var newAssociate = new Dictionary<string, string>
{
{ "name", "Ahmet Yılmaz" },
{ "email", "ahmet@example.com" },
{ "phone", "+905551234567" }
};
var result = await api.CreateAssociateAsync(accessToken, channel, newAssociate);
Console.WriteLine($"Müşteri oluşturuldu: {result.data.id}");
}
catch (Exception ex)
{
Console.WriteLine($"Hata: {ex.Message}");
}
}
}
📦 Gerekli NuGet Paketleri
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
🔧 Özellikler
- Async/Await Pattern: Modern C# async programlama
- HttpClient: .NET'in önerilen HTTP client'ı
- JSON Deserialization: Newtonsoft.Json ile esnek JSON işleme
- Error Handling: Try-catch ile hata yönetimi
- Type Safety: C#'ın güçlü tip sistemi