Plateformes de messagerie
Les canaux de messagerie vous permettent de parler au Gateway résident Anyy depuis les services que vous utilisez déjà. Chaque compte configuré possède son profil de connexion, ses identifiants et sa règle d’accès privé/de groupe.
Plateformes prises en charge
Le catalogue actuel des canaux implémente :
| Plateforme | Connexion |
|---|---|
| Telegram | Interrogation longue Bot API |
| Discord | Bot Gateway |
| Slack | Socket Mode |
| Webhook Business Cloud API | |
| Webhook Messenger | |
| Réception IMAP et envoi SMTP sur TLS | |
| SMS | Webhook Twilio et REST |
| DingTalk | Connexion Stream |
| Feishu / Lark | Connexion longue par défaut ; mise à jour possible des comptes webhook existants |
| Weixin / WeChat | Interrogation longue confirmée par QR |
| QQ Bot | Gateway WebSocket |
| IRC | TLS et SASL |
| LINE | Webhook Messaging API |
L’assistant de configuration est le catalogue de référence de la version installée. Les entrées qu’il marque comme non prises en charge ne peuvent pas être activées en ajoutant une configuration devinée.
Configuration rapide
Démarrez le Gateway résident du profil sélectionné, puis ouvrez l’assistant interactif des canaux :
anyy gateway start
anyy setup channel
L’assistant lit le catalogue du Gateway actif. Choisissez la plateforme et remplissez les champs effectivement proposés, y compris les règles CLI ; vérifiez le récapitulatif avant d’écrire. Il utilise le profil de connexion par défaut d’une plateforme non configurée et n’offre pas de sélecteur général de changement de profil. Les interfaces actuelles créent un compte uniquement si la plateforme n’en possède aucun ; sinon elles mettent à jour le compte existant.
Dans un terminal non interactif, la commande sans plateforme affiche le catalogue. Ajouter un nom de plateforme sélectionne la configuration non interactive : anyy setup channel telegram n’ouvre pas un assistant propre à Telegram. Gardez le Gateway résident disponible pour la configuration comme pour la messagerie.
Configurez et testez le modèle principal dans Dashboard ou la TUI avant d’ajouter un canal. Vous séparerez ainsi les problèmes de modèle/fournisseur des problèmes de connexion de messagerie.
Configuration Dashboard
Ouvrez Dashboard → Channel pour voir les comptes enregistrés et les types de plateformes disponibles. « Configured » signifie enregistré dans ce profil, sans garantir une connexion active. Vous pouvez :
- ajouter un compte ;
- utiliser l’entrée de configuration par défaut de la plateforme ;
- saisir les champs non secrets et les identifiants ;
- modifier les champs exposés par l’action Dashboard du compte ;
- consulter ses détails et son état de santé ;
- recharger les canaux ;
- supprimer une connexion.
Weixin / WeChat propose dans Dashboard la connexion QR et un formulaire d’accès des expéditeurs pour le compte lié. Les formulaires d’identifiants Dashboard/TUI des autres plateformes n’exposent pas les règles privées/groupes de la CLI. Utilisez anyy setup channel dans un terminal interactif pour les modifier. Le catalogue peut déclarer des actions qu’une interface donnée n’offre pas ; le basculement Feishu en est un exemple.
Accès et association
Les profils de canal peuvent proposer l’accès ouvert, l’association, les listes d’autorisation, l’accès aux groupes uniquement sur mention ou la désactivation des entrées. Les choix disponibles dépendent du contrat de la plateforme.
Les champs actuels des listes d’expéditeurs sont disponibles dans les formulaires d’accès Weixin lié et dans l’assistant CLI IRC. Les autres listes d’expéditeurs/groupes fonctionnent si elles existent déjà, mais les actions actuelles n’en modifient pas les entrées. Choisir allowlist ne remplit aucune liste ; une liste vide ou sans correspondance refuse l’expéditeur. Ne devinez pas de clés --set supplémentaires et ne modifiez pas state.db.
La CLI gère les demandes d’association ; la page Channel actuelle de Dashboard ne dispose pas de liste d’approbation. Listez les demandes en attente :
anyy channel pairing list
Approuvez ou rejetez par identifiant de demande :
anyy channel pairing approve --request REQUEST_ID
anyy channel pairing reject --request REQUEST_ID
Approuvez la demande d’un expéditeur avec un code saisi de manière interactive :
anyy channel pairing approve --prompt-code \
--channel telegram --account personal
Révoquez une autorisation existante :
anyy channel pairing revoke --grant GRANT_ID --reason "access removed"
Vérifiez la personne/le compte et la plateforme avant d’approuver. Une autorisation peut ouvrir l’accès aux conversations et aux capacités activées de l’assistant selon la règle du canal.
Périmètre des conversations
Anyy réutilise une session liée pour la même route actuelle de compte, correspondant et fil. Les salons partagés partagent le contexte de conversation. Le contexte de réponse varie selon la plateforme : Slack et Discord conservent leurs fils, tandis que les routes WhatsApp et Email actuelles utilisent aussi les identifiants des messages entrants. Les messages d’un même contact ne partagent donc pas systématiquement une seule session Anyy.
/new crée une session neuve pour la route actuelle ; /stop interrompt son exécution active. L’échec d’une réponse de commande n’annule pas une action locale validée. Recréer un compte ou changer son identité n’autorise pas une connexion de remplacement à rejouer les anciennes réponses.
Santé et rechargement
Inspectez une plateforme :
anyy channel doctor telegram
Rechargez la configuration des canaux dans le Gateway actif :
anyy channel reload
Ajoutez --json aux commandes compatibles doctor, pairing-list ou reload lorsqu’un autre programme a besoin d’une sortie structurée. Un reçu d’action locale, une capacité déclarée par un adaptateur et une livraison observée sont des faits distincts. Le catalogue livré peut qualifier un profil exécutable de préversion ; testez le compte réel et chacune des capacités nécessaires.
L’acceptation par la plateforme ne prouve pas la lecture par le destinataire. Un envoi sans accusé peut rester sent_unconfirmed. Les nouvelles réponses finales ne sont réessayées que si l’échec est reconnu sans risque avant tout effet externe ; les envois partiels ou incertains ne sont pas répétés intégralement automatiquement. Consultez la conversation avant de demander une autre copie. Le rechargement réconcilie les comptes actuels sans rejouer l’historique.
Configuration non interactive
L’automatisation peut configurer une plateforme avec le contrat d’action des canaux :
anyy setup channel CHANNEL \
[--set INPUT=VALUE] \
[--sensitive-fd INPUT=FD] \
[--external-locator-fd INPUT=FD]
Un compte Telegram déjà configuré peut par exemple modifier sa règle avec anyy setup channel telegram --set dm_policy=pairing --set group_policy=mention. Créer un compte exige également les identifiants déclarés.
Utilisez --set pour les entrées non secrètes. Pour les identifiants, utilisez --sensitive-fd avec un descripteur ouvert dédié de numéro 3 ou supérieur afin d’éviter leur présence dans les arguments de processus ou l’historique du shell. --external-locator-fd fournit les emplacements de secrets gérés à l’extérieur lorsque l’entrée sélectionnée le permet.
Les identifiants exacts des entrées sont définis par la plateforme/le profil sélectionné et indiqués par sa configuration. Ne déduisez pas les noms de champs d’un autre canal.
Plateformes à webhook
WhatsApp, Facebook, SMS, LINE et le profil webhook Feishu exigent une livraison entrante par webhook. Leur contrat de configuration demande les champs de rappel et identifiants de vérification propres à la plateforme.
L’écoute webhook partagée est désactivée par défaut. Activez-la dans config.yaml du profil sélectionné :
channel_webhooks:
enabled: true
listen: 127.0.0.1:8770
Redémarrez le Gateway après modification de ce paramètre de démarrage. anyy channel reload seul ne démarre pas une écoute précédemment désactivée. Faites passer le chemin exact /channels/PLATFORM/ACCOUNT_ID/webhook de la plateforme en HTTPS vers cette écoute, pas vers le port Dashboard. Conservez le corps et les en-têtes de signature, protégez les secrets de vérification et complétez les abonnements/autorisations de la plateforme. Twilio vérifie également l’URL publique d’origine.
Dépannage
| Problème | Solution |
|---|---|
| Le compte s’enregistre mais ne reçoit jamais | Lancez anyy gateway status et anyy channel doctor CHANNEL |
| Un canal à interrogation longue/WebSocket se déconnecte | Corrigez les identifiants/l’accès réseau, puis anyy channel reload |
| Échec de vérification du webhook | Vérifiez le routage HTTPS public, l’URL de rappel, le secret de signature et l’abonnement plateforme |
| Message privé ignoré | Vérifiez règle privée, association et liste d’autorisation |
| Message de groupe ignoré | Vérifiez règle de groupe et mention obligatoire éventuelle |
| Mauvaise personne associée | Révoquez immédiatement l’autorisation et vérifiez les accès en attente/actifs |