0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.
C# / .NET SDK: Telegram Stars va Premium
Mustaqil Fragment Donor C# / .NET SDK’ni o‘rnatish, username, Stars/Premium va rate limit bilan ishlash.
Xarid so‘rovi wallet mnemonic va Fragment sessiya/cookie ma’lumotini API operatoriga yuboradi.
Runtime: .NET 8+. Paket registrda PUBLISHED bo‘lgach o‘rnating; ungacha public source ichidagi dotnet katalogidan build/install qiling.
Klient C# / .NET uslubidagi naming bilan username, Stars xaridi, Premium sovg‘asi va balansni beradi. So‘rovlar form-urlencoded. Balans decimal string sifatida, qo‘shimcha maydonlar esa yo‘qolmasdan saqlanadi.
Backend’da timeout va hamyon credentiallarini sozlang. Read retry alohida yoqilib chegaralanadi; xaridlar hech qachon avtomatik qaytarilmaydi. Aniq constructor va xato turlari paket README’sida bor.
O‘rnatish
dotnet add package FragmentDonor.Sdk --version 0.1.3Misol
using FragmentDonor.Sdk;
// Read-only by default. Never dump or serialize credentials.
var mnemonic = Environment.GetEnvironmentVariable("FRAGMENT_MNEMONIC") ?? "";
using var client = new FragmentDonorClient(new ClientOptions
{
Credentials = new WalletCredentials(mnemonic,
Environment.GetEnvironmentVariable("FRAGMENT_COOKIE"))
{
ProviderKey = Environment.GetEnvironmentVariable("TONCONSOLE_API_KEY"),
},
});
try
{
var username = Environment.GetEnvironmentVariable("FRAGMENT_USERNAME") ?? "durov";
var user = await client.GetUserInfoAsync(username);
Console.WriteLine("Username: " + user.Username);
if (!string.IsNullOrWhiteSpace(mnemonic))
{
var balance = await client.WalletBalanceAsync();
Console.WriteLine("TON balance: " + balance.Ton);
if (Environment.GetEnvironmentVariable("FRAGMENT_ALLOW_PURCHASES") == "yes")
{
// Exactly one deliberate real-money gift; never repeat blindly.
var kind = Environment.GetEnvironmentVariable("FRAGMENT_PURCHASE_KIND");
if (kind == "stars") await client.BuyStarsAsync(new StarsRequest(username, 50));
else if (kind == "premium") await client.BuyPremiumAsync(new PremiumRequest(username, 3));
else throw new ArgumentException("Select FRAGMENT_PURCHASE_KIND=stars or premium explicitly.");
}
}
}
catch (RateLimitException error) { Console.WriteLine($"Try later in {error.RetryAfter} seconds."); }
catch (ServiceUnavailableException error) { Console.WriteLine($"Try later in {error.RetryAfter} seconds."); }
Davom eting
Telegram Stars API’da 429, Retry-After va flood wait · API integratsiyasida hamyon credentiallarini himoyalash · Fragment Donor API va SDK haqida savollar