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:BotIconiboticonkolidują.
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:
POST /api/uploads/presignzpurpose=bot_app_emojiiapplication_id.PUTpliku pod zwrócony URL S3.POST /api/uploads/completeze zwróconymfile_id.POST /developer-portal/applications/{id}/emojisz{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.