

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Melakukan panggilan SDK dari layanan back-end untuk perpesanan Amazon Chime SDK
<a name="call-from-backend"></a>

Setelah Anda membuat pengguna untuk mewakili layanan back-end Anda, Anda membuat saluran, mengirim pesan ke saluran tersebut, dan membaca pesan dari saluran tersebut.

Jalankan perintah CLI berikut untuk membuat saluran publik.

```
aws chime-sdk-messaging create-channel \
    --chime-bearer "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn" \
    --name "firstChannel"
```

Perintah menghasilkan ARN dalam format ini: `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [Bagaimana otorisasi IAM bekerja untuk layanan back-end](#how-iam-works)
+ [Memahami otorisasi API implisit](#api-implicit-auth)
+ [Mengirim dan mencantumkan pesan saluran](#send-list-msgs)

## Bagaimana otorisasi IAM bekerja untuk layanan back-end
<a name="how-iam-works"></a>

Dalam perintah CLI dari bagian sebelumnya, perhatikan parameternya`chime-bearer`. Ini mengidentifikasi pengguna yang membuat atau berinteraksi dengan sumber daya seperti saluran dan pesan. Hampir semua pesan Amazon Chime SDK APIs diambil `chime-bearer` sebagai parameter, kecuali APIs dimaksudkan untuk dipanggil hanya oleh pengembang, seperti. `CreateAppInstance`

Izin IAM untuk APIs pesan Amazon Chime SDK memerlukan yang cocok `app-instance-user-arn ` dengan parameter. `chime-bearer` Tambahan ARNs —biasanya saluran ARNs —mungkin diperlukan berdasarkan API. Untuk layanan back-end seperti contoh di atas, ini mengarah ke kebijakan IAM seperti contoh berikut:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "chime:SendChannelMessage",
            "chime:ListChannelMessages",
            "chime:CreateChannelMembership",
            "chime:ListChannelMemberships",
            "chime:DeleteChannelMembership",
            "chime:CreateChannel",
            "chime:ListChannels",
            "chime:DeleteChannel"
        ],
        "Resource": [
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/back-end-worker",
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
        ]
    }
}
```

------

Perhatikan `AppInstanceUser` ARN dan saluran ARN di bagian ini. `Resource` Contoh kebijakan IAM ini memberikan izin layanan back-end untuk melakukan panggilan API sebagai pengguna dengan ID ".” back-end-worker Jika Anda ingin layanan back-end Anda dapat melakukan panggilan untuk orang-orang yang menggunakan aplikasi Anda, ubah ke`app_instance_user_arn`. `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`

## Memahami otorisasi API implisit
<a name="api-implicit-auth"></a>

Selain kebijakan IAM, APIs pesan Amazon Chime SDK memiliki izin implisit. Misalnya, seorang hanya `AppInstanceUser` dapat mengirim pesan atau mencantumkan keanggotaan saluran di saluran tempat pengguna berada. Satu pengecualian untuk ini adalah `AppInstanceUser` orang yang dipromosikan`AppInstanceAdmin`. Secara default, admin memiliki izin untuk semua saluran di aplikasi Anda. Untuk sebagian besar kasus penggunaan, Anda hanya memerlukan ini untuk layanan back-end yang berisi logika bisnis yang signifikan.

Perintah CLI berikut mempromosikan pengguna back-end ke admin.

```
aws chime-sdk-identity create-app-instance-admin \
    --app-instance-admin-arn "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn"
```

## Mengirim dan mencantumkan pesan saluran
<a name="send-list-msgs"></a>

Perintah CLI berikut mengirimkan pesan saluran.

```
aws chime-sdk-messaging send-channel-message \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn" \
    --content "hello world" \
    --type STANDARD \
    --persistence PERSISTENT
```

Perintah CLI berikut mencantumkan pesan saluran dalam urutan kronologis terbalik.
+ `aws chime list-channel-messages`
+ `aws chime-sdk-messaging list-channel-messages`

```
aws chime-sdk-messaging list-channel-messages \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn"
```