Snowflake Discord : ce que signifie le long numéro d'identifiant
Un snowflake est le nombre unique de 64 bits que Discord attribue à chaque utilisateur, serveur, salon, rôle et message. Les 42 premiers bits contiennent un horodatage, donc n'importe quel snowflake indique à quel moment l'élément a été créé, à la milliseconde près.
Ce qu'est un snowflake
Chaque fois que vous copiez un identifiant dans Discord, vous copiez un snowflake. Il ressemble à 175928847299117063 : un long nombre entier de 17 à 19 chiffres. Discord utilise le même format pour les utilisateurs, les serveurs (appelés guildes dans l'API), les salons, les rôles, les messages, les emojis et plus encore.
Le format vient d'un système utilisé à l'origine chez Twitter. Le but est de créer des identifiants uniques, à peu près ordonnés dans le temps, sur de nombreuses machines sans qu'elles aient à se demander quel est le prochain numéro.
Comment les bits sont organisés
Un snowflake se découpe en quatre parties, de gauche à droite :
- 42 bits d'horodatage : millisecondes depuis la première seconde de 2015 (l'époque de Discord, 1420070400000).
- 5 bits d'identifiant de worker et 5 bits d'identifiant de processus : quelle machine et quel processus Discord l'ont créé.
- 12 bits d'incrément : un compteur qui augmente pour chaque identifiant que ce processus crée dans la même milliseconde.
Pour lire l'heure de création, décalez le nombre de 22 bits vers la droite et ajoutez l'époque. Vous obtenez un horodatage Unix en millisecondes. C'est pourquoi vous pouvez savoir quand un serveur ou un message a été créé sans demander à quiconque.
Pourquoi les propriétaires de serveur s'y intéressent
Vous rencontrerez surtout les snowflakes en activant le Mode développeur (Paramètres utilisateur, Avancé), puis en faisant un clic droit sur un élément pour Copier l'identifiant. Les gens demandent des identifiants dans les rapports de bug, lors de la configuration d'un bot et pour retirer une personne malveillante qui a changé de nom. Les noms changent, un identifiant non.
Deux remarques pratiques :
- Les identifiants sont des identifiants publics, pas des secrets. Connaître l'identifiant d'un salon ne donne accès à personne.
- Comme ils sont plus grands que ce que beaucoup de programmes stockent comme nombre normal, l'API de Discord les envoie sous forme de chaînes. Les tableurs qui arrondissent les longs nombres peuvent corrompre un identifiant, gardez-les donc en texte.
Notre décodeur de snowflake gratuit transforme un identifiant en date de création directement dans votre navigateur.
Comment Noxyr utilise les identifiants
Noxyr stocke les identifiants d'utilisateurs Discord là où une fonctionnalité en a besoin : auteurs de tickets, clients des factures, participations aux concours, votes de sondage, auteurs d'avis et listes noires. Le tableau de bord conserve aussi votre identifiant, votre nom d'utilisateur et votre avatar pour la connexion. Les documents sur les données et la confidentialité listent précisément ce qui est conservé.
Certaines fonctionnalités prennent un identifiant en entrée. Par exemple, un propriétaire de bot personnalisé peut transférer le temps restant à une autre personne grâce à son identifiant d'utilisateur, et le bot garde son propre identifiant d'utilisateur quel que soit le nombre de renommages. C'est pourquoi les rôles et exceptions qui y sont liés continuent de fonctionner après un changement d'image.
Termes associés
Un identifiant d'application est aussi un snowflake, tout comme chaque identifiant de guilde. Le sharding utilise même l'identifiant de guilde pour décider quel shard reçoit un serveur, voir sharding.
Questions fréquentes
Comment trouver un identifiant Discord ?
Activez le Mode développeur dans Paramètres utilisateur, Avancé. Faites ensuite un clic droit sur un utilisateur, un salon, un rôle ou un serveur, puis choisissez Copier l'identifiant.
Peut-on trouver la date de création à partir d'un identifiant ?
Oui. Décalez le nombre de 22 bits vers la droite et ajoutez 1420070400000 pour obtenir un temps Unix en millisecondes. L'outil de décodage de snowflake le fait pour vous.
Un identifiant Discord est-il privé ?
Non. Les identifiants sont publics et ne donnent aucun accès à eux seuls. Traitez les jetons comme des secrets, pas les identifiants.