Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon Chime SDK mendukung pengaturan aturan filter pada keanggotaan saluran pengguna instance aplikasi untuk membatasi pesan mana yang akan mereka terima. Aturan filter ditetapkan pada keanggotaan saluran dan dijalankan terhadap peta atribut pesan. Peta atribut pesan harus berupa peta kunci string ke nilai string. Aturan filter mendukung inklusi dan pengecualian dengan pencocokan string yang tepat.
penting
-
Amazon Chime SDK hanya mendukung string JSON yang lolos sebagai aturan filter.
-
Semua anggota saluran notifikasi menerima pemberitahuan push, termasuk pengirim pesan. Untuk mencegah hal itu terjadi, lihat contoh aturan pertama di bawah ini.
Untuk menetapkan aturan filter pada keanggotaan saluran, gunakan PutChannelMembershipPreferencesAPI. Anda dapat menyertakan atribut pesan dalam pesan saluran sebagai bagian dari SendChannelMessagePanggilan API.
Jenis aturan filter
Amazon Chime SDK mendukung jenis aturan filter berikut:
-
Pencocokan string yang tepat inklusif
-
Pencocokan string persis eksklusif
-
Beberapa aturan filter menggunakan AND atau OR
Batas aturan filter
Amazon Chime SDK memberlakukan pembatasan berikut pada aturan filter:
-
Kami hanya mendukung pencocokan string yang tepat.
-
Ukuran aturan filter total 2KB.
-
Ukuran atribut pesan total 1KB.
-
Maksimal lima (5) kendala terpisah di dalam aturan filter OR.
-
Kompleksitas maksimum 20 untuk seluruh aturan filter. Kompleksitas dihitung sebagai jumlah dari jumlah kunci dan nilai dalam aturan filter:
Misalnya, aturan filter ini memiliki kompleksitas 4.
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}
Kami menghitung nilai itu sebagai berikut:
Keys = “type” and “mention” - Complexity 2 Values = "Room" and "Bob" - Complexity 2 Total complexity = 4
Contoh aturan filter
Contoh berikut menunjukkan beberapa cara untuk menggunakan preferensi keanggotaan saluran dan aturan filter.
Mencegah pesan masuk ke pengirim
Aturan filter ini mengirimkan pesan ke semua anggota saluran kecuali pengirim pesan.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"USER_ARN
\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Pengguna instance aplikasi dengan preferensi yang ditampilkan di atas menerima pesan saluran dengan atribut berikut:
"MessageAttributes": {
"senderId": {
"StringValues": ["USER_ARN
"]
}
}
Pencocokan string inklusif
Aturan filter ini memungkinkan pesan apa pun dengan kunci atribut pesan “mention” dan nilai “Bob.”
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Pengguna instance aplikasi dengan preferensi yang ditampilkan di atas menerima pesan channel dengan atribut pesan berikut:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob", "Alice"]
}
}
Namun, pengguna instance aplikasi tidak akan menerima pesan saluran dengan atribut berikut:
"MessageAttributes": {
"mention": {
"StringValues": ["Tom"]
}
}
Pencocokan string eksklusif
Aturan filter ini memungkinkan pesan apa pun kecuali yang berisi kunci atribut “type” dan nilai “Room”.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Pengguna instance aplikasi dengan preferensi tersebut menerima pesan channel dengan atribut pesan berikut:
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}
Namun, pengguna instance aplikasi tidak melihat pesan channel dengan atribut berikut:
"MessageAttributes": {
"type": {
"StringValues": ["Room"]
}
}
Aturan filter ganda dengan logika AND
Saat Anda menggabungkan aturan filter dengan logika AND, pesan harus memenuhi semua kriteria filter agar filter dapat diterapkan.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}",
"AllowNotifications": "FILTERED"
}
}
}
Pengguna instance aplikasi dengan preferensi di atas menerima pesan channel dengan atribut pesan berikut:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
},
"type": {
"StringValues": ["Conversation"]
}
}
Aturan filter ganda dengan logika OR
Anda gunakan $or
untuk menggabungkan aturan filter dengan logika OR. Saat Anda menggunakan logika OR, pesan harus memenuhi salah satu kriteria agar filter dapat diterapkan.
{
"Preferences": {
"PushNotifications": {
"FilterRule": "{\"$or\":[{\"mention\":[\"Bob\"]},{\"type\":[{\"anything-but\": [\"Room\"]}]}]}",
"AllowNotifications": "FILTERED"
}
}
}
Pengguna instance aplikasi dengan preferensi di atas menerima pesan channel dengan atribut pesan berikut:
"MessageAttributes": {
"mention": {
"StringValues": ["Bob"]
}
}
Pengguna instance aplikasi dengan preferensi di atas menerima pesan channel dengan atribut pesan berikut:
"MessageAttributes": {
"type": {
"StringValues": ["Conversation"]
}
}