Portal deweloperski
Eksperymentalne Platforma botów i aplikacji jest aktywnie rozwijana. Obsługa serwerów hostowanych samodzielnie pojawiła się 13.08.2026 i ma mniej funkcji niż chmura. Zobacz, co jest obsługiwane.
← Dokumentacja

Emoji aplikacji

Emoji wgrane w ramach twojej aplikacji można używać na każdym serwerze, na którym pisze twój bot, bez zajmowania miejsc na emoji tego serwera. Zgodność z Discordem: ten sam format danych i ta sama składnia <:name:id> w treści wiadomości.

Limity

  • 2000 emoji na aplikację (miękki limit, sprawdzany przy tworzeniu).
  • Maksymalny rozmiar pliku: 256 KB.
  • Typy zawartości: image/png, image/jpeg, image/gif, image/webp.
  • Nazwa: 2–32 znaki, dozwolone znaki [a-zA-Z0-9_]. Unikalna w obrębie aplikacji, bez rozróżniania wielkości liter: BotIcon i boticon kolidują.

Wykrywanie animacji

Flaga animated jest ustawiana po stronie serwera na podstawie typu zawartości wgranego pliku. Wszystko, co wgrano jako image/gif, jest animowane. Klient nie może tego zmienić. Gdy odwołujesz się do animowanego emoji w treści wiadomości, użyj prefiksu <a:name:id> (identycznie jak na Discordzie).

Endpointy REST (dla botów)

API botów udostępnia emoji twojej aplikacji tylko do odczytu. Uwierzytelniaj się nagłówkiem Authorization: Bot {token}.

GET /applications/{application.id}/emojis
GET /applications/{application.id}/emojis/{emoji.id}

Postać odpowiedzi (wpisy listy i GET pojedynczego emoji mają ten sam kształt co na Discordzie):

{
  "id": "1199283740192847360",
  "name": "thinking_orange",
  "animated": false,
  "user": { "id": "...", "username": "you" },
  "managed": false,
  "available": true
}

Tworzenie, modyfikacja i usuwanie nie są dostępne w API botów. Trasy Discorda POST /applications/{id}/emojis, PATCH i DELETE zwracają w GameVox 404. Całe zarządzanie emoji odbywa się przez portal deweloperski (poniżej); planujemy udostępnić endpointy zapisu w kształcie Discorda, gdy proces moderacji po stronie portalu będzie na tyle stabilny, żeby działać bez udziału człowieka.

Używanie emoji w wiadomościach

Do emoji aplikacji odwołujesz się w content tak samo jak do emoji serwera:

// Statyczne
"hello <:thinking_orange:1199283740192847360>"

// Animowane (zwróć uwagę na początkowe `a:`)
"thanks <a:wave_orange:1199283740192847361>"

W przypadku reakcji przekaż name:id w zakodowanej w URL ścieżce emoji w PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me, tak samo jak na Discordzie.

Wgrywanie przez portal

Portal deweloperski wgrywa emoji przez ten sam proces z podpisanymi URL-ami co awatary i ikony aplikacji:

  1. POST /api/uploads/presign z purpose=bot_app_emoji i application_id.
  2. PUT pliku pod zwrócony URL S3.
  3. POST /api/uploads/complete ze zwróconym file_id.
  4. POST /developer-portal/applications/{id}/emojis z {name, file_id}.

Serwer sprawdza, czy prefiks s3_key pliku to bot-emojis/{application_id}/, więc wyciek file_id z innej aplikacji nie pozwoli go podpiąć.

Przechowywanie

Pliki są przechowywane pod bot-emojis/{application_id}/{file_id}.{ext} w publicznym buckecie gamevox-files-prod. Miękko usunięte wiersze zostawiają obiekt S3 na miejscu; osierocone obiekty zbiera proces czyszczący działający w tle.

← Powrót do dokumentacji