Bu eğitim, bir Noxyr Sunucu API anahtarı oluşturmayı, altı uç noktayı Node.js ve tarayıcıdan çağırmayı ve herkese açık bir sayfaya canlı Discord verisi koymayı adım adım anlatır. Bir bot bağlantısı olmadan güncellenen gerçek bir üye sayacını web sitenizde istediyseniz, bu tam olarak onun yoludur.
Adım 1: Anahtarı oluşturun
Noxyr panelini açın, sunucunuzu seçin ve API Erişimi bölümüne gidin. API Anahtarı Oluştur'a tıklayın. Anahtar (nxr_ ile başlar) yalnızca bir kez gösterilir; hemen bir ortam değişkenine kopyalayın. Sunucu tarafında yalnızca bir SHA-256 özeti saklanır, bu yüzden kaybolan bir anahtar yeniden oluşturulmak zorundadır.
Adım 2: Kapsamlarınızı ayarlayın
Anahtarın altında, anahtarın neleri okuyabileceğini belirleyen altı anahtar vardır: Sunucu Genel Bakış, Biletler, Etkinlik, Faturalar, İncelemeler, Çekilişler. İhtiyacınız olmayanları kapatın; devre dışı bir kapsam anında 403 döndürür, böylece sızdırılmış bir anahtar hiç etkinleştirmediğiniz kapsamları yine de okuyamaz.
Adım 3: Curl ile hızlı test
curl https://noxyrbot.com/api/v1/server \
-H "Authorization: Bearer nxr_YOUR_KEY"
Sunucunuzun kimliğini, adını, simge URL'sini, üye sayısını, çevrimiçi sayısını ve boost'larını içeren bir JSON görmelisiniz.
Adım 4: Node.js'ten çağırın
const KEY = process.env.NOXYR_API_KEY;
async function getStats() {
const [server, tickets, activity] = await Promise.all([
fetch('https://noxyrbot.com/api/v1/server', { headers: { Authorization: `Bearer ${KEY}` } }),
fetch('https://noxyrbot.com/api/v1/tickets', { headers: { Authorization: `Bearer ${KEY}` } }),
fetch('https://noxyrbot.com/api/v1/activity?days=7', { headers: { Authorization: `Bearer ${KEY}` } })
]);
return {
server: await server.json(),
tickets: await tickets.json(),
activity: await activity.json()
};
}
getStats().then(console.log);
Adım 5: Tarayıcıdan çağırın
CORS açıktır, yani statik bir siteden doğrudan istek atabilirsiniz. Anahtarı gerçek kullanıcılara giden istemci tarafı koda gömmeyin: DevTools açan herkes onu görebilir. İki güvenli yöntem:
- Bir proxy arkasındaki herkese açık panel: sizin tarafınızda küçük bir sunucusuz fonksiyon, anahtarı bir ortam değişkeninden okur, Noxyr'i çağırır ve JSON'u tarayıcıya iletir.
- Güvenilir dahili bir araç: sayfayı kendi kimlik doğrulamanızın arkasına koyun, ardından anahtarı oraya besleyin.
// Cloudflare Worker / Vercel Edge - key stays on the server
export default {
async fetch(request, env) {
const upstream = await fetch('https://noxyrbot.com/api/v1/server', {
headers: { Authorization: `Bearer ${env.NOXYR_API_KEY}` }
});
return new Response(await upstream.text(), {
headers: { 'content-type': 'application/json', 'cache-control': 'public, max-age=60' }
});
}
};
Adım 6: Görüntüleyin
<div id="members">…</div>
<script>
fetch('/api/live-server-stats')
.then((r) => r.json())
.then((data) => {
document.getElementById('members').textContent =
`${data.memberCount.toLocaleString()} members · ${data.onlineCount} online`;
});
</script>
Hız sınırları ve önbellekleme
Anahtar başına dakikada 60 istek. Gerçek zamanlı veri özel bir panelde harika hissettirir ama herkese açık bir sitede israftır; üst akış yanıtlarını proxy katmanınızda 30–60 saniye önbelleğe alın, sınıra asla yaklaşmazsınız.
Hata yanıtları
401 unauthorized: anahtar eksik veya hatalı.403 key_disabled: anahtar panelde kapatılmış.403 scope_disabled: uç noktanın kapsamı kapalı; panelden düzeltin.404 guild_unavailable: bot o sunucudan kaldırılmış.429 rate_limited: yavaşlayın.
API'nin neden bu biçimde tasarlandığını merak ediyor musunuz? Discord botları için API tasarım ilkeleri.