Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Das Amazon Chime SDK unterstützt das Festlegen von Filterregeln für die Kanalmitgliedschaft eines App-Instance-Benutzers, um einzuschränken, welche Nachricht er erhält. Filterregeln werden für die Kanalmitgliedschaft festgelegt und anhand der Zuordnung der Nachrichtenattribute ausgeführt. Bei der Zuordnung der Nachrichtenattribute muss es sich um eine Zuordnung von Zeichenkettenschlüsseln zu Zeichenkettenwerten handeln. Filterregeln unterstützen Inklusion und Exclusion mit exakter Übereinstimmung von Zeichenketten.
Wichtig
-
Das Amazon Chime SDK unterstützt nur maskierte JSON-Zeichenketten als Filterregel.
-
Alle Mitglieder eines Benachrichtigungskanals erhalten die Push-Benachrichtigungen, einschließlich der Nachrichtenabsender. Um dies zu verhindern, sehen Sie sich die erste Beispielregel unten an.
Um Filterregeln für die Mitgliedschaft in einem Kanal festzulegen, verwenden Sie den PutChannelMembershipPreferencesAPI. Sie können Nachrichtenattribute in eine Kanalnachricht aufnehmen als Teil der SendChannelMessageAPI-Aufruf.
Regeltypen filtern
Das Amazon Chime SDK unterstützt die folgenden Arten von Filterregeln:
-
Inklusive exaktem Zeichenkettenabgleich
-
Exklusiver genauer Zeichenkettenabgleich
-
Mehrere Filterregeln mit AND oder OR
Grenzwerte für Filterregeln
Das Amazon Chime SDK legt die folgenden Einschränkungen für Filterregeln fest:
-
Wir unterstützen nur den exakten Zeichenkettenabgleich.
-
Eine Gesamtgröße der Filterregeln von 2 KB.
-
Eine Gesamtgröße des Nachrichtenattributs von 1 KB.
-
Maximal fünf (5) separate Einschränkungen innerhalb einer OR-Filterregel.
-
Eine maximale Komplexität von 20 für die gesamte Filterregel. Die Komplexität wird als Summe der Anzahl der Schlüssel und Werte in der Filterregel berechnet:
Diese Filterregel hat beispielsweise eine Komplexität von 4.
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}
Wir berechnen diesen Wert wie folgt:
Keys = “type” and “mention” - Complexity 2 Values = "Room" and "Bob" - Complexity 2 Total complexity = 4
Beispiel für Filterregeln
Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Kanalmitgliedschaftseinstellungen und Filterregeln zu verwenden.
Verhindern, dass Nachrichten an Absender gesendet werden
Diese Filterregel sendet Nachrichten an alle Kanalmitglieder mit Ausnahme des Nachrichtenabsenders.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"USER_ARN
\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
App-Instanzbenutzer mit den oben angegebenen Einstellungen erhalten eine Kanalnachricht mit den folgenden Attributen:
"MessageAttributes": {
"senderId": {
"StringValues": ["USER_ARN
"]
}
}
Inklusive Zeichenkettenabgleich
Diese Filterregel erlaubt jede Nachricht mit dem Nachrichtenattributschlüssel „Mention“ und dem Wert „Bob“.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Ein App-Instance-Benutzer mit den oben angegebenen Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob", "Alice"]
}
}
Der Benutzer der App-Instanz erhält jedoch keine Kanalnachricht mit den folgenden Attributen:
"MessageAttributes": {
"mention": {
"StringValues": ["Tom"]
}
}
Exklusiver Zeichenkettenabgleich
Diese Filterregel erlaubt alle Nachrichten außer Nachrichten, die den Attributschlüssel „type“ und den Wert „Room“ enthalten.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Ein App-Instance-Benutzer mit diesen Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}
Dem App-Instanzbenutzer wird jedoch keine Kanalnachricht mit den folgenden Attributen angezeigt:
"MessageAttributes": {
"type": {
"StringValues": ["Room"]
}
}
Eine Regel für mehrere Filter mit UND-Logik
Wenn Sie Filterregeln mit UND-Logik kombinieren, muss eine Nachricht alle Filterkriterien erfüllen, damit der Filter angewendet wird.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Ein App-Instanzbenutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
},
"type": {
"StringValues": ["Conversation"]
}
}
Eine Regel für mehrere Filter mit OR-Logik
Sie verwenden$or
, um Filterregeln mit OR-Logik zu kombinieren. Wenn Sie die OR-Logik verwenden, muss eine Nachricht eines der Kriterien erfüllen, damit der Filter angewendet werden kann.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"$or\":[{\"mention\":[\"Bob\"]},{\"type\":[{\"anything-but\": [\"Room\"]}]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Ein App-Instance-Benutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
}
}
Ein App-Instanz-Benutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}