

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Realización de llamadas SDK a la mensajería de Amazon Chime SDK desde un servicio de back-end
<a name="call-from-backend"></a>

Una vez que crea un usuario para representar sus servicios de back-end, crea un canal, envía mensajes a ese canal y lee los mensajes de ese canal.

Ejecute el siguiente comando de la CLI para crear un canal público.

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

El comando produce un ARN en este formato: `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [Cómo funciona la autorización de IAM para los servicios de back-end](#how-iam-works)
+ [Comprender la autorización implícita de la API](#api-implicit-auth)
+ [Enviar y enumerar los mensajes del canal](#send-list-msgs)

## Cómo funciona la autorización de IAM para los servicios de back-end
<a name="how-iam-works"></a>

En el comando CLI de la sección anterior, anote el parámetro `chime-bearer`. Identifica al usuario que crea recursos como canales y mensajes o interactúe con ellos. Casi todos los mensajes del SDK de Amazon Chime se APIs utilizan `chime-bearer` como parámetro, excepto APIs que están destinados a que solo los desarrolladores los llamen, como. `CreateAppInstance`

Los permisos de IAM para la APIs mensajería del SDK de Amazon Chime requieren `app-instance-user-arn ` un parámetro que coincida con `chime-bearer` el parámetro. Según la ARNs API, es ARNs posible que se requieran otros canales (normalmente un canal). En el caso de los servicios de back-end, como el ejemplo anterior, esto lleva a políticas de IAM como las del ejemplo siguiente:

------
#### [ 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/*"
        ]
    }
}
```

------

Anote el ARN de `AppInstanceUser` y el ARN del canal en la sección `Resource`. En este ejemplo de política de IAM, se concede al servicio de back-end permiso para realizar llamadas a la API como usuario con el identificador "». back-end-worker Si quieres que tu servicio de back-end pueda realizar llamadas para las personas que usan tu aplicación, cámbiala a. `app_instance_user_arn` `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`

## Comprender la autorización implícita de la API
<a name="api-implicit-auth"></a>

Además de las políticas de IAM, la APIs mensajería del SDK de Amazon Chime tiene permisos implícitos. Por ejemplo, tan solo `AppInstanceUser` puede enviar un mensaje o incluir una lista de los miembros de un canal en los canales a los que pertenezca el usuario. Una excepción a esto es `AppInstanceUser` que se ha ascendido a `AppInstanceAdmin`. De forma predeterminada, los administradores tienen permisos para acceder a todos los canales de su aplicación. En la mayoría de los casos de uso, solo lo necesita para los servicios de back-end que contienen una lógica empresarial significativa.

El siguiente comando CLI convierte a un usuario de back-end en administrador.

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

## Enviar y enumerar los mensajes del canal
<a name="send-list-msgs"></a>

El siguiente comando CLI envía mensajes de canal.

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

Los siguientes comandos CLI enumeran los mensajes de canal en orden cronológico inverso.
+ `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"
```