0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.
Go SDK: Telegram Stars va Premium
Mustaqil Fragment Donor Go 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: Go 1.23+. Paket registrda PUBLISHED bo‘lgach o‘rnating; ungacha public source ichidagi go katalogidan build/install qiling.
Klient Go 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
go get github.com/usnuz/fragment-donor-sdk/go@v0.1.3Misol
package main
import (
"context"
"errors"
"os"
"time"
donor "github.com/usnuz/fragment-donor-sdk/go"
)
func main() {
client, err := donor.NewClient(donor.Config{
BaseURL: donor.DefaultBaseURL,
Timeout: 30 * time.Second,
ConnectTimeout: 5 * time.Second,
Credentials: donor.Credentials{
Mnemonic: os.Getenv("FRAGMENT_MNEMONIC"),
Cookie: os.Getenv("FRAGMENT_COOKIE"),
WalletVersion: "auto", // auto, v5r1, v4r2, v3r2
ProviderKey: os.Getenv("TONCONSOLE_API_KEY"), // optional provider key
},
})
if err != nil { return }
ctx := context.Background()
user, err := client.GetUserInfo(ctx, "durov")
_ = user
if err != nil { return }
balance, err := client.WalletBalance(ctx)
_ = balance // TON and USDTTON are exact decimal strings.
if err != nil { return }
// Real-funds operations require both opt-in and one selected purchase.
if os.Getenv("FRAGMENT_ALLOW_PURCHASES") != "yes" { return }
switch os.Getenv("FRAGMENT_PURCHASE_KIND") {
case "stars":
_, err = client.BuyStars(ctx, "durov", 50, "usdt_ton")
case "premium":
_, err = client.BuyPremium(ctx, "durov", 3, "ton")
default:
return
}
var apiErr *donor.Error
if errors.As(err, &apiErr) {
if apiErr.OutcomeUnknown {
_ = apiErr.Details["tx_hash"] // reconcile manually; do not repeat.
}
_ = apiErr.RetryAfter // communicate wait, never auto-replay purchase.
}
}Davom eting
Telegram Stars API’da 429, Retry-After va flood wait · API integratsiyasida hamyon credentiallarini himoyalash · Fragment Donor API va SDK haqida savollar