Aller au contenu

Services

phil/instant-messenger

MessengerType

Un service est un cas d'une enum qui implémente MessengerType :

MéthodeDonne
normalize(string $input): ?stringL'identifiant canonique que représente l'entrée, ou null quand elle n'en est pas un
display(string $handle): stringL'identifiant tel que les gens le lisent
link(string $handle): ?stringL'adresse qui ouvre une conversation, ou null

Les services internationaux

ServiceIdentifiantLu à partir deLien
WhatsAppUn numéro de téléphone, +15145550123wa.me/…, api.whatsapp.com/send?phone=…https://wa.me/15145550123
TelegramUn nom d'utilisateur de 5 à 32 lettres, chiffres et _, en minuscules@name, t.me/…, telegram.me/… ; pas les pages propres à Telegram, t.me/joinchat/…, t.me/addstickers/… et autreshttps://t.me/name, affiché @name
SignalUn numéro de téléphone, ou un nom d'utilisateur name.01signal.me/#p/…https://signal.me/#p/+1… pour un numéro ; aucun pour un nom d'utilisateur
MessengerUn nom d'utilisateur Facebookm.me/…https://m.me/name
Matrix@user:servermatrix.to/#/…https://matrix.to/#/@user:server
Xmppuser@server, sans ?, # ni caractère de contrôlexmpp:…xmpp:user@server, l'utilisateur encodé en pourcentage comme l'écrit la RFC 5122
ThreemaUn identifiant de 8 caractères, en majusculesthreema.id/…https://threema.id/ID
ViberUn numéro de téléphone—viber://chat?number=…
LineUn identifiant de 4 à 20 caractères ; celui d'un compte officiel garde son @~id, @id, line.me/ti/p/~…, line.me/R/ti/p/~… et …/@… ; pas un code d'ami, line.me/ti/p/AbCd…https://line.me/ti/p/~id ; https://line.me/R/ti/p/@id pour un compte officiel
DiscordUn nom d'utilisateur de 2 à 32 caractères@nameaucun, affiché @name
WeChatUn identifiant de 6 à 20 caractères, commençant par une lettre—aucun
IMessageUn numéro de téléphone, ou une adresse courriel en minuscules—aucun
SnapchatUn nom d'utilisateur de 3 à 15 lettres, chiffres, ., - et _, commençant par une lettre et finissant par une lettre ou un chiffre@name, snapchat.com/add/…https://www.snapchat.com/add/name
SessionUn Session ID : 05 suivi de 64 chiffres hexadécimaux, en minuscules—aucun

Un numéro de téléphone s'écrit au format international, avec + et l'indicatif du pays ; les espaces, les points, les tirets et les parenthèses sont tolérés. phil/phone le lit : le numéro doit exister dans le plan de numérotation de son pays et ne porter aucun poste, et il est gardé en E.164, +15145550123, et affiché au format international, +1 514-555-0123. label() donne le nom propre du service, XMPP, iMessage.

iMessage n'a pas de lien : sms: ouvre les messages texte de l'appareil, iMessage ou non, et Apple ne publie aucune adresse qui lui soit propre.

Les services présents

Un service figure dans KnownMessenger quand il est utilisé dans plusieurs pays et qu'il nomme lui-même ses utilisateurs, ou par un numéro de téléphone ou une adresse courriel. Sont exclus :

GenrePar exempleRaison
Lié à un espace de travail ou à un serveurSlack, Mattermost, Rocket.Chat, Microsoft TeamsUn nom ne veut rien dire sans son espace de travail
Un simple numéro de téléphone ou un compteSMS, RCS, Google ChatUn champ de téléphone ou de courriel, pas un service
Un réseau socialInstagram, X, Bluesky, MastodonUn profil, un genre d'URL plutôt qu'un identifiant
RégionalKakaoTalk, Zalo, QQL'enum propre à l'application, à côté de KnownMessenger
Sans identifiant, ou ferméSimpleX, SkypeRien à stocker

Les services propres à une application

Un forum communautaire, un réseau régional : une enum de l'application, qui implémente MessengerType, lue et affichée à sa façon. Les champs et les contraintes l'acceptent à côté de KnownMessenger.