Fragment Donor SDKManba kodi

0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.

PHP SDK: Telegram Stars va Premium

Mustaqil Fragment Donor PHP 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: PHP 8.2+. Paket registrda PUBLISHED bo‘lgach o‘rnating; ungacha public source ichidagi php katalogidan build/install qiling.

Klient PHP 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

composer require fragment-donor/sdk:^0.1

Misol

<?php

declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
use FragmentDonor\{Client, Credentials, StarsRequest, PremiumRequest, RateLimitError, ServiceUnavailableError};

// Read-only by default. Never print or dump client credentials.
$client = new Client(credentials: new Credentials(
    mnemonic: getenv('FRAGMENT_MNEMONIC') ?: '',
    cookie: getenv('FRAGMENT_COOKIE') ?: '',
    providerKey: getenv('TONCONSOLE_API_KEY') ?: null,
));
try {
    $username = getenv('FRAGMENT_USERNAME') ?: 'durov';
    $user = $client->getUserInfo($username);
    echo 'Username: ' . $user->username() . PHP_EOL;
    if (getenv('FRAGMENT_MNEMONIC')) {
        $wallet = $client->walletBalance();
        echo 'TON balance: ' . $wallet->ton() . PHP_EOL;
        if (getenv('FRAGMENT_ALLOW_PURCHASES') === 'yes') {
            // Exactly one deliberate real-money gift, never both or a blind retry.
            $kind = getenv('FRAGMENT_PURCHASE_KIND');
            if ($kind === 'stars') {
                $client->buyStars(new StarsRequest($username, 50));
            } elseif ($kind === 'premium') {
                $client->buyPremium(new PremiumRequest($username, 3));
            } else {
                throw new LogicException('Select FRAGMENT_PURCHASE_KIND=stars or premium explicitly.');
            }
        }
    }
} catch (RateLimitError | ServiceUnavailableError $error) {
    echo 'Retry later: ' . ($error->retryAfter ?? 5) . ' seconds.' . PHP_EOL;
}

Manba kodi · php

Davom eting

Telegram Stars API’da 429, Retry-After va flood wait · API integratsiyasida hamyon credentiallarini himoyalash · Fragment Donor API va SDK haqida savollar

OpenAPI 3.0 · Postman collection