Sunucu referansı
Sunucu API
Sayfayı kopyala
The API uygulamanızın kendi sunucu çağrısını gizli anahtarla yapar. Oturumları doğrulayın, ürünleri listele, onayla, teslim et ve ücretleri iade et, kuyunuzdan ödülleri ödemek, bildirimler göndermek, reklamları kontrol etmek ve kamuya açık tabloları listelemek.
#Temeller
| Temel adres | https://api.lialabs.org/api/apps/v1 |
| Kimlik doğrulama | Authorization: Bearer <your key>, test anahtarınız (lia_test_…) veya canlı anahtar (lia_live_…) |
| Vücutlar | JSON, ile Content-Type: application/json |
| Miktarlar | $LIA içinde, sayılar 6 ondalık basamağa kadar |
| Zamanlar | 1970'dan itibaren milisaniye (UTC) |
Sadece sunucunuzdan çağırın. Anahtarınız bir sırdır: asla sayfanızda kullanmayın.
curl https://api.lialabs.org/api/apps/v1/pool \
-H "Authorization: Bearer $LIA_KEY"Aşağıdaki örneklerde kullanılan küçük bir yardımcı:
const LIA = "https://api.lialabs.org/api/apps/v1";
export async function lia(method, path, body) {
const res = await fetch(LIA + path, {
method,
headers: { Authorization: `Bearer ${process.env.LIA_KEY}`, "Content-Type": "application/json" },
body: body === undefined ? undefined : JSON.stringify(body),
});
const data = await res.json();
if (!res.ok) throw Object.assign(new Error(data.error), { status: res.status, data });
return data;
}#Anahtarlar ve modlar
Bir anahtar sadece kendi uygulamasını görür ve sadece kendi modunu: test anahtarı test oturumlarını, ödemeleri, oyuncuları ve reklamları görür; canlı anahtar canlı olanları görür. Diğer moddan bir şey not_found (veya valid: false. Gör Test ve canlı.
#Hatalar
Hatalar 4xx durumu ve bir error kod, bazen daha fazla alanla:
{ "error": "pool_empty", "pool": 3.5 }| Durum | Kod | Zaman |
|---|---|---|
| 401 | bad_key | Anahtar yok, yanlış şekilli bir anahtar, bilinmeyen bir anahtar, uygulamanızda canlı bir anahtar'canlı değil, veya canlıyken herhangi bir tuşa bas.'duraklatıldı. |
Her uç nokta kendi listesini gösterir. Her kod Hata kodları.
#Oturumlar
#POST/session/verify
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/session/verify' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"session": "lias_example_session"
}'Bir oturum belirteci kontrol eder Lia.init() veya Lia.session(), ve onun kim olduğunu söyler.
POST /api/apps/v1/session/verify
Authorization: Bearer lia_live_…
Content-Type: application/json
{ "session": "lias_eyJhcHAiOi…" }| Alan | Tür | |
|---|---|---|
session | dize | Sayfadaki token. |
Cevaplar 200 her iki yönden de:
{ "valid": true, "playerId": "p_3f9c0a6d1b2e4f5a6b7c", "mode": "live", "exp": 1761998400000 }{ "valid": false }Bir token geçerlidir, Lia imzaladığında, o'uygulamanız ve anahtarınız için'modu ve onun'sona erdi (15 dakika sonra oluşturuldu).
#Ürünler
#GET/products
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request GET 'https://api.lialabs.org/api/apps/v1/products' \
--header "Authorization: Bearer $LIA_KEY"Uygulamanızın Lia'daki fiyatlarla sattığı şey'kayıtlar. Sadece etkin ürünler, en ucuzdan en pahalıya doğru.
{
"products": [
{ "id": "extra-lives", "name": "3 extra lives", "price": 5, "active": true },
{ "id": "gold-pack", "name": "Gold pack", "price": 25, "active": true }
]
}#Yüklemler
Bir Lia üzerindeki bir ödeme.'ödeme sayfası. Görüntüle Ödemeler.
Yükleme nesnesi:
| Alan | Tür | |
|---|---|---|
id | dize | Beğen ch_9b1f…. |
playerId | dize | Kim ödedi. |
productId | dize | Ne ödediler. |
amount | sayı | Ne ödediler, $LIA ile. |
status | dize | paid, delivered veya refunded. |
mode | dize | test veya live. |
createdAt | sayı | Ne zaman ödenmiş. |
deliveredAt | sayı veya null | Onu teslim ettiğiniz zaman. |
refundedAt | sayı veya null | Ne zaman iade edilmiş. |
#GET/charges/:id
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request GET 'https://api.lialabs.org/api/apps/v1/charges/id_example' \
--header "Authorization: Bearer $LIA_KEY"Bu ücret gerçek mi, ödenmiş mi ve kime ait? Teslim etmeden önce her zaman burayı kontrol edin: sayfayı asla almayın'veya bir webhook'bunun için bir kelime.
{
"charge": {
"id": "ch_9b1f4c2e7a0d5b8f3e6a1c4d",
"playerId": "p_3f9c0a6d1b2e4f5a6b7c",
"productId": "extra-lives",
"amount": 5,
"status": "paid",
"mode": "live",
"createdAt": 1761998400000,
"deliveredAt": null,
"refundedAt": null
}
}| Durum | Kod | Zaman |
|---|---|---|
| 404 | not_found | Uygulamanız için anahtarınızda bu tür bir ücret yok'modu. |
#POST/charges/:id/deliver
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/charges/id_example/deliver' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Idempotency-Key: example-request-1'Bir ödeme teslim edildiğini işaretler, bir kez'kişiye ne satın aldıysa onu verdi. Tekrarlamak güvenlidir: teslim edilen bir ücret tekrar teslim edilirse hiçbir şey değişmez ve aynı cevap verilir. Hiçbir kimse.
{ "charge": { "id": "ch_9b1f…", "status": "delivered", "deliveredAt": 1761998405000, "…": "…" } }| Durum | Kod | Zaman |
|---|---|---|
| 404 | not_found | Anahtarınızda bu tür bir ücret yok'modu. |
| 409 | refunded | İade edildi, bu yüzden'teslim et. Vücutta charge de. |
#POST/charges/:id/refund
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/charges/id_example/refund' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Idempotency-Key: example-request-1'Zamanınız olduğunda $LIA'u kişiye geri verin'aldığı şeyi teslim et. Ücretli veya teslim edilmiş bir ücretle çalışır. Tekrar yapmak güvenlidir: iade edilmiş bir ücreti iade etmek, ona cevap verir ve hiçbir şey ödemaz. Hiçbir vücut.
{ "charge": { "id": "ch_9b1f…", "status": "refunded", "refundedAt": 1761998410000, "…": "…" } }Tam fiyat, kişiye geri döner'u bakiye, canlı modda Lia'dan'parça ve payınız. Bir charge.refunded webhook gönderilir.
| Durum | Kod | Zaman |
|---|---|---|
| 404 | not_found | Anahtarınızda bu tür bir ücret yok'modu. |
#Ödüller
Bak Ödül havuzları.
#POST/rewards
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/rewards' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"playerId": "player_example",
"amount": 1,
"key": "reward-example-1",
"reason": "Level completed"
}'Uygulamanızdan bir oyuncuya ödeme yapar'ödül havuzu, her anahtar için bir kez.
POST /api/apps/v1/rewards
Authorization: Bearer lia_live_…
Content-Type: application/json
{
"playerId": "p_3f9c0a6d1b2e4f5a6b7c",
"amount": 25,
"key": "tournament-2026-11-01:p_3f9c0a6d1b2e4f5a6b7c",
"reason": "Weekly tournament, 1st place"
}| Alan | Tür | |
|---|---|---|
playerId | dize | Ödemek için oyuncu. |
amount | sayı | $LIA içinde, 0'den fazla ve 10,000,'ye kadar 6 ondalık basamağa kadar |
key | dize | Sizin, 1 ile 128 harfler, rakamlar, _, ., : ve -. Bir anahtar bir kez öder, her zaman. Onun olmadan, Idempotency-Key başlık kullanılır. |
reason | dize | Seçmeli, 80 karaktere kadar (daha uzun olan kesilir). Oyuncuda gösterilir's uygulamanızın etkinliği altında'adı. |
Ödeme:
{ "status": "paid", "amount": 25, "pool": 975 }Aynı anahtar tekrar ödemeyi ve ilkinin ödediğine cevap verir:
{ "status": "duplicate", "amount": 25, "pool": 975 }pool ne demektir'sol, kuyu içinde. Test modunda ödül hayali: kuyu değildir'kullanıldı ve günlük limit yok't uygulandı.
| Durum | Kod | Zaman |
|---|---|---|
| 400 | bad_amount | amount değildir't 0 ve 10,000. arasında bir sayı |
| 400 | bad_key_field | key eksik veya doğru formda değildir. |
| 404 | unknown_player | Uygulamanızda bu tür bir oyuncu yok. |
| 409 | pool_empty | Kuyruk değil'tut amount. Vücutta pool, ne'sol. |
| 429 | daily_limit | Üç format'günde ki limiti oyuncu başına ( $LIA , UTC günde bir). Cisim has dailyCapPerPlayer. |
A reward.paid webhook, her ödüllendirme için (yinelenenler için değil) gönderilir.
#GET/pool
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request GET 'https://api.lialabs.org/api/apps/v1/pool' \
--header "Authorization: Bearer $LIA_KEY"Ne'sol, ödül kuyunuzda ve bir oyuncunun günde alabileceği en fazlası.
{ "balance": 975, "dailyCapPerPlayer": 50, "mode": "live" }dailyCapPerPlayer dır 0 iken'hayır günlük limit. balance canlı havuzdur, test anahtarınızla sorduğunuzda da aynıdır.
#Bildirimler
Bak Bildirimler.
#POST/notifications
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/notifications' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"playerId": "player_example",
"text": "Ready for another round?",
"startParam": "round_2"
}'İzin veren bir oyuncuya bildirim gönderir. Uygulamanızın altında görünür'adı ve uygulamanızı açar, sizinle birlikte startParam.
POST /api/apps/v1/notifications
Authorization: Bearer lia_live_…
Content-Type: application/json
{ "playerId": "p_3f9c0a6d1b2e4f5a6b7c", "text": "It's your move against @amara.", "startParam": "match-8k2d" }| Alan | Tür | |
|---|---|---|
playerId | dize | Kim bildirilmeli. |
text | dize | 1 ile 180 karakter. Boşluklar ve yeni satırlar tek boşluk haline gelir. Bağlantılar, telefon numaraları veya sahtekarlıkta kullanılan kelimeler yok. |
startParam | dize | Seçmeli. 1 ile 64 harf, rakam, _ ve -. Sayfanız bunu Lia.startParam. |
Gönderildi:
{ "sent": true, "pushed": true }pushed dır false zaman Lia ulaştı'u zil ama telefon değil (kişinin Lia var'itme kapatıldı).
| Durum | Kod | Zaman |
|---|---|---|
| 400 | bad_text | Boş, çok uzun, ya da izin verilmiyor. Zaman'metnin ne söylediğine göre, problem dır link, phone veya scam. |
| 400 | bad_start_param | startParam değildir'doğru şekildedir. |
| 403 | notifications_off | Uygulamanız bildirim gönderemez (günlük sayısı 0'dır). |
| 403 | not_allowed | Bu oyuncunun't uygulamanız için izin verilir'bildirimlerini, veya onları durdurdular. |
| 404 | unknown_player | Bu tür bir oyuncu yok, veya anahtarınızla bir oyuncu değil'modu erişir (bir test anahtarı sadece test kullanıcılarına erişim sağlar). |
| 429 | rate_limited | Bir sınır aşıldı. Uygulamanız için'kendi sınırları vücutta retryAt, tekrar deneyebileceğiniz zaman. |
#Reklamlar
Bak Reklamlar.
#POST/ads/verify
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/ads/verify' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"adId": "ad_example"
}'Bu reklam gerçekten izlendi mi ve kim tarafından? Ödül video için herhangi bir şey vermeden önce kontrol edin.
POST /api/apps/v1/ads/verify
Authorization: Bearer lia_live_…
Content-Type: application/json
{ "adId": "ad_8e1c4b0f2a9d47c6b3e15a07" }{ "adId": "ad_8e1c4b0f2a9d47c6b3e15a07", "playerId": "p_3f9c0a6d1b2e4f5a6b7c", "format": "rewarded", "watched": true, "watchedAt": 1761998400000 }| Alan | Tür | |
|---|---|---|
adId | dize | id'den Lia.showAd(). |
playerId | dize | Oyuncu gösterildi. Kontrol et'soru soran kişi. |
format | dize veya null | "rewarded", "rewardedInterstitial", "interstitial", "banner" veya "native" (SDK 1.7'den önceki reklamlar için null). Sadece "rewarded" ve "rewardedInterstitial" bir ödüre değerdir. |
watched | mantıksal değer | Bitene kadar izlendi (veya arka plan, banner veya doğal reklam için, gösterildi). |
watchedAt | sayı veya null | Zaman |
Reklamın gösterildiği modun anahtarını kullanarak sor: test modu reklamı (her zaman Google'dan biri)'test reklamları, kazançlara dahil edilmez) budur not_found canlı anahtara.
Lia yapamaz'bir reklamı kullanılmış olarak işaretlersiniz, bu yüzden her birini ödersiniz. adId kendinizi (kullan ad:<adId> ödül anahtarı).
| Durum | Kod | Zaman |
|---|---|---|
| 404 | not_found | Uygulamanız için anahtarınızda bu tür bir reklam yok'modu. |
#Lobby
Kamuya açık tablolar Lia üzerindeki herkesin bulabileceği. Lia sadece listeyi korur: sunucunuz tabloyu çalıştırır. Bakınız Kamuya açık tablolar.
Tablo nesnesi:
| Alan | Tür | |
|---|---|---|
id | dize | Tablonuz's id. |
game | dize | Senin uygulaman's id. |
host | nesne | { name }: ana bilgisayar's Lia kullanıcı adı. |
seats, taken | sayı | Toplam koltuk sayısı ve alınan. |
title | dize veya null | Her şey Lia'da okunanlar gibi filtrelenir. |
stake, pot | sayı | LIA içinde, göstermek için. |
createdAt, expiresAt | sayı |
#POST/lobby/tables
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/lobby/tables' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"tableId": "table_example",
"hostPlayerId": "player_example",
"seats": 2,
"taken": 1,
"title": "A friendly game",
"stake": 1,
"pot": 1,
"expiresIn": 1800
}'Şunun bir masasını listeler'oyuncuları bekliyor, veya listesini günceller (listede aynı yerini korur). Koltukları değiştiğinde listeyi tekrar yayınlayın.
{ "tableId": "t8k2d", "hostPlayerId": "p_3f9c0a6d1b2e4f5a6b7c", "seats": 2, "taken": 1, "title": "Quick game", "stake": 5, "expiresIn": 900 }| Alan | Tür | |
|---|---|---|
tableId | dize | Sizin, 1 ile 57 harfler, rakamlar, _ ve - (startParam sığacak kadar kısa lobby-<id>). |
hostPlayerId | dize | Oyuncu ev sahibi. |
seats | sayı | Seçmeli. 2 ile 10, 2 varsayılan olarak. |
taken | sayı | Seçmeli. Yerler dolduruldu, sahiplik's dahil edilmiştir: 1 ile seats, varsayılan olarak 1. |
title | dize | Seçmeli, 40 karaktere kadar. |
stake, pot | sayı | Seçmeli. LIA'da, 0 ile 10,000, sadece listede gösterilir. Lia değil'bunları tutun veya hareket ettirin: kendi ürününüzle stake ücreti alın. |
expiresIn | sayı | Seçmeli. Listelenme süresi saniye cinsinden, 60 ile 3600, 1800 varsayılan olarak. |
{ "listed": true, "tableId": "t8k2d", "seats": 2, "taken": 1, "expiresAt": 1761999300000 }Zaman taken ulaşır seats, tablo listeden çıkarılır ve cevap { "listed": false }.
| Durum | Kod | Zaman |
|---|---|---|
| 400 | bad_table_id, bad_seats, bad_taken, bad_title, bad_amount, bad_expires_in | Bir alan yok'sığasın. |
| 404 | unknown_player | Uygulamanızda bu tür bir sunucu yok. |
| 429 | too_many_tables | Ana makine zaten uygulamanızda 3 açık tabloları vardır. Vücutta max. |
#GET/lobby/tables
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request GET 'https://api.lialabs.org/api/apps/v1/lobby/tables' \
--header "Authorization: Bearer $LIA_KEY"Senin uygulaman'sizin anahtarınızda açık masalar'modu, en yeni ilk, 200 kadar: her sunucu'blokların yanına konulduğu (o'her oyuncu için'kendi görünümü).
{ "tables": [{ "id": "t8k2d", "game": "your-app", "host": { "name": "amara" }, "seats": 2, "taken": 1, "title": "Quick game", "stake": 5, "pot": 0, "createdAt": 1761998400000, "expiresAt": 1761999300000 }] }#POST/lobby/tables/:id/sit
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request POST 'https://api.lialabs.org/api/apps/v1/lobby/tables/id_example/sit' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example-request-1' \
--data-raw '{
"playerId": "player_example"
}'Oyuncuyu listedeki bir masaya oturtur, ancak sunucunuz onu içeri almadan önce. Lia, sahibin engellediği veya sahibi engellediği kişileri reddeder. Son koltuk alındığında masa listeden çıkar.
{ "playerId": "p_8a1e0c4d2b7f9e3a5c6d" }{ "seated": true, "taken": 2, "seats": 2, "full": true }| Durum | Kod | Zaman |
|---|---|---|
| 404 | unknown_player | Uygulamanızda bu tür bir oyuncu yok. |
| 404 | not_found | Tablo, listeden ayrıldı'listelenmedi, bitti veya sahibin ve oyuncu birbirlerini engelledi. |
| 409 | full | Her koltuk doludur. |
| 409 | own_table | Oyuncu ev sahibidir. |
#DELETE/lobby/tables/:id
# Set LIA_KEY on your server. Reuse Idempotency-Key only for the same request.
curl --request DELETE 'https://api.lialabs.org/api/apps/v1/lobby/tables/id_example' \
--header "Authorization: Bearer $LIA_KEY" \
--header 'Idempotency-Key: example-request-1'Oyun başladığında veya kapatıldığında listeden bir masa kaldırır. Tekrar etmek güvenlidir.
{ "removed": true }removed dır false zaman değildi'listelenmedi.
#Yeniden deneme
Bir tane gönder Idempotency-Key her başlıkla POST, ve aynı anahtarı o istekteki her yeniden denemede tekrar kullanır. Bir yeniden deneme asla aynı şeyi iki kez yapmaz ve ilk istek gibi cevaplar.
POST /api/apps/v1/notifications
Authorization: Bearer lia_live_…
Content-Type: application/json
Idempotency-Key: 6f1c2a9e-0b7d-4c35-9e1a-2d8f4b7c3a10
{ "playerId": "p_3f9c0a6d1b2e4f5a6b7c", "text": "It's your move." }- Herhangi bir anahtarınızı isterseniz, 1 harfler, rakamlar, 128 arasında
_,-,.ve:. Her işlem için bir UUID doğruyu. - İlk istek çalışır. Eğer başarılı olursa (2xx), cevabı 24 saat boyunca saklar ve aynı anahtar ve aynı gövdeyle tekrar denerseniz, başlıkla aynı cevabı alırsınız
Idempotent-Replayed: true. - Bir reddetme hiçbir şeyi tutmaz (4xx veya 5xx), bu yüzden aynı anahtarı kullanarak sorunu düzeltip tekrar deneyebilirsiniz.
- Aynı anahtar, farklı bir içerikle dır
422 idempotency_key_reused. - Aynı anahtar, ilk işlem hala çalışırken dır
409 idempotency_key_in_useileRetry-After: 1. Yeniden deneyin ve ilkini alırsınız's cevap. - Anahtarlar uygulamanızın'kendi, ve aynı anahtar başka bir uç noktada başka bir anahtardır. Aynı anahtar başka bir uç noktada başka bir anahtardır.
Başlık olmadan, çoğu uç nokta yine de yeniden denenebilir: okumalar hiçbir şeyi değiştirmez, teslim ve iade güvenli tekrar edilebilir ve ödüller her biri için bir kez ödenir key. Bildirimler istisnadır: başlık olmadan, bir yeniden deneme bildirimi tekrar gönderir.
Otomatik çeviri. İngilizce, doğru kaynaktır. İngilizce olarak oku