Snowflake na Discordu: co znamená dlouhé číslo ID
Snowflake je jedinečné 64bitové číslo, které Discord přiřazuje každému uživateli, serveru, kanálu, roli a zprávě. Prvních 42 bitů nese časové razítko, takže každý snowflake vám řekne, kdy byla věc vytvořena, až na milisekundu.
Co je snowflake
Kdykoli na Discordu zkopírujete ID, kopírujete snowflake. Vypadá třeba takto: 175928847299117063, což je dlouhé celé číslo o 17 až 19 číslicích. Discord používá stejný formát pro uživatele, servery (v API se nazývají guildy), kanály, role, zprávy, emoji a další.
Formát vychází ze schématu, které poprvé použil Twitter. Cílem je vytvářet jedinečná ID, zhruba seřazená podle času, na mnoha strojích, aniž by se stroje musely navzájem ptát na další číslo.
Jak jsou bity rozložené
Snowflake se dělí na čtyři části, zleva:
- 42 bitů časového razítka: milisekundy od první sekundy roku 2015 (epocha Discordu, 1420070400000).
- 5 bitů ID workeru a 5 bitů ID procesu: který stroj a proces Discordu jej vytvořil.
- 12 bitů inkrementu: počítadlo, které roste pro každé ID, jež daný proces vytvoří ve stejné milisekundě.
Čas vytvoření zjistíte tak, že číslo posunete o 22 bitů doprava a přičtete epochu. Dostanete unixový čas v milisekundách. Proto můžete zjistit, kdy byl server nebo zpráva vytvořena, aniž byste se na to koho museli ptát.
Proč na tom vlastníkům serverů záleží
Snowflaky se nejčastěji potkáte, když zapnete Režim pro vývojáře (Uživatelské nastavení, Pokročilé) a u něčeho kliknete pravým tlačítkem na Kopírovat ID. Lidé ID žádají v hlášeních chyb, při nastavení botů a při odstraňování špatného aktéra, který si změnil jméno. Jména se mění, ID ne.
Dvě praktické poznámky:
- ID jsou veřejné identifikátory, ne tajemství. Znalost ID kanálu nikomu nedá přístup k tomuto kanálu.
- Protože jsou větší, než kolik mnoho programů ukládá jako běžné číslo, Discord je v API posílá jako řetězce. Tabulky, které dlouhá čísla zaokrouhlují, mohou ID poškodit, takže je držte jako text.
Náš bezplatný dekodér snowflake převede ID na datum vytvoření přímo ve vašem prohlížeči.
Jak Noxyr používá ID
Noxyr ukládá ID uživatelů Discordu tam, kde je funkce potřebuje: otevírající tiketů, zákazníci faktur, účastníci giveawayů, hlasy v anketách, autoři recenzí a černé listiny. Dashboard si pro přihlášení ukládá vaše ID, uživatelské jméno a avatar. Přesně to, co se ukládá, uvádí dokumentace k datům a soukromí.
Některé funkce berou ID jako vstup. Například vlastník vlastního bota může zbývající čas převést jinému člověku podle jeho uživatelského ID a bot si zachovává své vlastní uživatelské ID bez ohledu na to, kolikrát ho přejmenujete. Proto role a přepsání na něj navázané fungují i po rebrandingu.
Související pojmy
ID aplikace je také snowflake, stejně jako každé ID guildy. Sharding dokonce používá ID guildy k tomu, aby určil, který shard server obslouží, viz sharding.
Časté otázky
Jak najdu ID na Discordu?
Zapněte Režim pro vývojáře v Uživatelské nastavení, Pokročilé. Potom klikněte pravým tlačítkem na uživatele, kanál, roli nebo server a zvolte Kopírovat ID.
Mohu z ID zjistit datum vytvoření?
Ano. Číslo posuňte o 22 bitů doprava a přičtěte 1420070400000, dostanete unixový čas v milisekundách. Nástroj dekodér snowflake to udělá za vás.
Je ID na Discordu soukromé?
Ne. ID jsou veřejné identifikátory a samy o sobě nedávají přístup. Tokeny berte jako tajemství, ne ID.