Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le SDK Amazon Chime permet de définir des règles de filtrage sur l'adhésion à la chaîne d'un utilisateur d'une instance d'application afin de limiter le message qu'il recevra. Les règles de filtrage sont définies en fonction de l'appartenance au canal et sont appliquées par rapport à la carte des attributs des messages. La carte des attributs du message doit être une carte des clés de chaîne et des valeurs de chaîne. Les règles de filtrage prennent en charge l'inclusion et l'exclusion avec une correspondance exacte des chaînes.
Important
-
Le SDK Amazon Chime prend uniquement en charge les chaînes JSON échappées comme règle de filtrage.
-
Tous les membres d'un canal de notification reçoivent les notifications push, y compris les expéditeurs de messages. Pour éviter que cela ne se produise, consultez le premier exemple de règle ci-dessous.
Pour définir des règles de filtrage sur l'appartenance à une chaîne, utilisez le PutChannelMembershipPreferencesAPI. Vous pouvez inclure des attributs de message dans un message de chaîne dans le cadre du SendChannelMessageAppel d'API.
Types de règles de filtrage
Le SDK Amazon Chime prend en charge les types de règles de filtrage suivants :
-
Correspondance exacte des chaînes incluse
-
Correspondance exacte exclusive des chaînes
-
Plusieurs règles de filtrage utilisant AND ou OR
Limites des règles de filtrage
Le SDK Amazon Chime impose les restrictions suivantes en matière de règles de filtrage :
-
Nous prenons uniquement en charge la correspondance exacte des chaînes.
-
La taille totale des règles de filtrage est de 2 Ko.
-
Une taille totale d'attribut de message de 1 Ko.
-
Un maximum de cinq (5) contraintes distinctes dans une règle de filtre OR.
-
Complexité maximale de 20 pour l'ensemble de la règle de filtrage. La complexité est calculée comme la somme du nombre de clés et de valeurs de la règle de filtre :
Par exemple, cette règle de filtre a une complexité de 4.
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}
Nous calculons cette valeur comme suit :
Keys = “type” and “mention” - Complexity 2 Values = "Room" and "Bob" - Complexity 2 Total complexity = 4
Exemples de règles de filtrage
Les exemples suivants montrent plusieurs manières d'utiliser les préférences d'adhésion aux chaînes et les règles de filtrage.
Empêcher les messages d'être envoyés aux expéditeurs
Cette règle de filtrage envoie des messages à tous les membres de la chaîne, à l'exception de l'expéditeur du message.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"USER_ARN
\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Les utilisateurs de l'instance d'application ayant les préférences indiquées ci-dessus reçoivent un message de chaîne avec les attributs suivants :
"MessageAttributes": {
"senderId": {
"StringValues": ["USER_ARN
"]
}
}
Correspondance de chaînes incluse
Cette règle de filtrage autorise tout message dont la clé d'attribut de message « mention » et la valeur « Bob » sont valides.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Un utilisateur d'instance d'application ayant les préférences indiquées ci-dessus reçoit un message de canal avec les attributs de message suivants :
"MessageAttributes": {
"mention": {
"StringValues": ["Bob", "Alice"]
}
}
Toutefois, l'utilisateur de l'instance d'application ne recevra pas de message de chaîne contenant les attributs suivants :
"MessageAttributes": {
"mention": {
"StringValues": ["Tom"]
}
}
Correspondance exclusive des chaînes
Cette règle de filtrage autorise tous les messages sauf ceux contenant la clé d'attribut « type » et la valeur « Room ».
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Un utilisateur d'instance d'application disposant de ces préférences reçoit un message de canal avec les attributs de message suivants :
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}
Toutefois, l'utilisateur de l'instance d'application ne voit aucun message de chaîne contenant les attributs suivants :
"MessageAttributes": {
"type": {
"StringValues": ["Room"]
}
}
Une règle à filtres multiples avec logique AND
Lorsque vous combinez des règles de filtre avec la logique AND, un message doit répondre à tous les critères de filtre pour que le filtre s'applique.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
},
"type": {
"StringValues": ["Conversation"]
}
}
Une règle à filtres multiples avec logique OR
Vous pouvez $or
combiner les règles de filtrage avec la logique OR. Lorsque vous utilisez la logique OR, un message doit répondre à l'un des critères pour que le filtre s'applique.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"$or\":[{\"mention\":[\"Bob\"]},{\"type\":[{\"anything-but\": [\"Room\"]}]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
}
}
Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}