

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.

# Envoyer des SMS sur Amazon SNS avec la version 3 AWS SDK pour PHP
<a name="sns-examples-sending-sms"></a>

Vous pouvez utiliser Amazon Simple Notification Service (Amazon SNS) pour envoyer des SMS, ou des SMS, à des appareils compatibles SMS. Vous pouvez envoyer un message directement à un numéro de téléphone, ou vous pouvez envoyer un message à plusieurs numéros de téléphone simultanément en abonnant ces numéros de téléphone à une rubrique et en envoyant votre message à la rubrique.

Utilisez Amazon SNS pour définir vos préférences en matière de messagerie SMS, telles que la manière dont vos envois sont optimisés (en termes de coût ou de fiabilité), votre limite de dépenses mensuelles, la manière dont les envois de messages sont enregistrés et si vous souhaitez vous abonner aux rapports quotidiens d'utilisation des SMS. Ces préférences sont récupérées et définies sous forme d'attributs SMS pour Amazon SNS.

Lorsque vous envoyez un SMS, spécifiez le numéro de téléphone au format E.164. E.164 est une norme pour la structure des numéros de téléphone. Elle est utilisée pour les télécommunications internationales. Les numéros qui respectent ce format peuvent comporter 15 chiffres au maximum et commencent par le caractère plus (\+) et le code pays. Par exemple, un numéro de téléphone américain au format E.164 s'affichera sous la forme \+1001 0100XXX555.

Les exemples suivants montrent comment :
+ Récupérez les paramètres par défaut pour l'envoi de SMS depuis votre compte à l'aide de [Get SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#getsmsattributes).
+ Mettez à jour les paramètres par défaut pour l'envoi de SMS depuis votre compte à l'aide de [Set SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#setsmsattributes).
+ Découvrez si le propriétaire d'un numéro de téléphone donné a choisi de ne pas recevoir de SMS de votre compte en utilisant [CheckIfPhoneNumberISOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#checkifphonenumberisoptedout).
+ Répertoriez les numéros de téléphone pour lesquels le propriétaire a choisi de ne pas recevoir de SMS de votre compte en utilisant [ListPhoneNumberOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listphonenumbersoptedout).
+ Envoyer un message texte (SMS) directement à un numéro de téléphone à l’aide de [Publish](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish).

Pour plus d'informations sur l'utilisation d'Amazon SNS, consultez [Utilisation d'Amazon SNS pour les notifications aux utilisateurs ayant un numéro de téléphone portable en tant qu'abonné (](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)envoi de SMS).

Tous les exemples de code pour le AWS SDK pour PHP sont [disponibles ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Informations d’identification
<a name="examplecredentials"></a>

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dans[Authentification à l' AWS aide de AWS SDK pour PHP la version 3](credentials.md). Importez ensuite le AWS SDK pour PHP, comme décrit dans[Installation de la AWS SDK pour PHP version 3](getting-started_installation.md).

## Obtenir les attributs des SMS
<a name="get-sms-attributes"></a>

Pour récupérer les paramètres par défaut des messages SMS, utilisez l'SMSAttributesopération [Obtenir](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSAttributes.html).

Cet exemple permet d’obtenir l’attribut `DefaultSMSType`. Cet attribut contrôle si les messages SMS sont envoyés en tant que `Promotional`, ce qui optimise la transmission des messages au plus bas coût ou en tant que `Transactional`, ce qui optimise la transmission des messages à une fiabilité optimale.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->getSMSAttributes([
        'attributes' => ['DefaultSMSType'],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Définir les attributs des SMS
<a name="set-sms-attributes"></a>

Pour mettre à jour les paramètres par défaut des messages SMS, utilisez l'SMSAttributesopération [Set](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html).

Cet exemple définit l’attribut `DefaultSMSType` sur `Transactional`, ce qui optimise la transmission de message à une fiabilité optimale.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Vérifiez si un numéro de téléphone s'est désinscrit
<a name="check-if-a-phone-number-has-opted-out"></a>

Pour déterminer si le propriétaire d'un numéro de téléphone donné a choisi de ne pas recevoir de SMS depuis votre compte, utilisez cette [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_CheckIfPhoneNumberIsOptedOut.html)opération.

Dans cet exemple, le numéro de téléphone est au format E.164, une norme internationale de télécommunications.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$phone = '+1XXX5550100';

try {
    $result = $SnSclient->checkIfPhoneNumberIsOptedOut([
        'phoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Répertorier les numéros de téléphone désactivés
<a name="list-opted-out-phone-numbers"></a>

Pour récupérer la liste des numéros de téléphone pour lesquels le propriétaire a choisi de ne pas recevoir de SMS depuis votre compte, utilisez cette [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_ListPhoneNumbersOptedOut.html)opération.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->listPhoneNumbersOptedOut();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Publier dans un message texte (message SMS)
<a name="publish-to-a-text-message-sms-message"></a>

Pour diffuser un message texte (SMS) directement à un numéro de téléphone, utilisez l’opération [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html).

Dans cet exemple, le numéro de téléphone est au format E.164, une norme internationale de télécommunications.

Les messages SMS peuvent contenir jusqu’à 140 octets. La limite de taille pour une action de publication de SMS est de 1 600 octets.

Pour plus d’informations sur l’envoi de messages SMS, consultez la section [Envoi d’un message SMS](https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html).

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```