

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.

# Exemples d'Amazon SNS utilisant la version 3 AWS SDK pour PHP
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) est un service Web qui coordonne et gère la livraison ou l'envoi de messages aux points de terminaison ou aux clients abonnés.

Sur Amazon SNS, il existe deux types de clients : les éditeurs (également appelés producteurs) et les abonnés (également appelés consommateurs). Les éditeurs communiquent de façon asynchrone avec les abonnés en produisant et en envoyant un message à une rubrique, qui est un point d'accès logique et un canal de communication. Les abonnés (serveurs Web, adresses e-mail, files d'attente Amazon SQS, AWS Lambda fonctions) consomment ou reçoivent le message ou la notification via l'un des protocoles pris en charge (Amazon SQS, HTTP/HTTPS URLs e-mail, AWS SMS Lambda) lorsqu'ils sont abonnés au sujet.

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

**Topics**
+ [Gestion des sujets](sns-examples-managing-topics.md)
+ [Gestion des abonnements](sns-examples-subscribing-unsubscribing-topics.md)
+ [Envoyer des SMS à Amazon](sns-examples-sending-sms.md)

# Gestion des sujets dans Amazon SNS avec la version 3 AWS SDK pour PHP
<a name="sns-examples-managing-topics"></a>

Pour envoyer des notifications à Amazon Simple Queue Service (Amazon SQS) HTTP/HTTPS URLs, par e-mail AWS Lambda ou par e-mail AWS SMS, vous devez d'abord créer une rubrique qui gère la distribution des messages à tous les abonnés de cette rubrique.

En termes de conception du modèle d’observateur, une rubrique correspond à l’objet. Une fois qu’une rubrique est créée, vous ajoutez des abonnés qui reçoivent automatiquement une notification lorsqu’un message est publié dans cette rubrique.

Pour en savoir plus sur l'abonnement à des rubriques, consultez [la section Gestion des abonnements dans Amazon SNS AWS SDK pour PHP avec](sns-examples-subscribing-unsubscribing-topics.md) la version 3.

Les exemples suivants montrent comment :
+ Créez une rubrique pour publier des notifications d'utilisation [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic).
+ Renvoie une liste des sujets du demandeur à l'aide [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic)de.
+ Supprimez un sujet et tous ses abonnements à l'aide de [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic).
+ Renvoie toutes les propriétés d'une rubrique en utilisant [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Autoriser le propriétaire d'une rubrique à attribuer une nouvelle valeur à un attribut de la rubrique en utilisant [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Pour plus d'informations sur l'utilisation d'Amazon SNS, consultez la [rubrique Attributs d'Amazon SNS relatifs à l'état de livraison des](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html) messages.

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).

## Créer une rubrique
<a name="create-a-topic"></a>

Pour créer un sujet, utilisez l'[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)opération.

Chaque nom de rubrique que vous Compte AWS trouverez doit être unique.

 **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'
]);

$topicname = 'myTopic';

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

## Listez vos sujets
<a name="list-your-topics"></a>

Pour répertorier jusqu'à 100 sujets existants dans la AWS région actuelle, utilisez l'[ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.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->listTopics();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Supprimer une rubrique
<a name="delete-a-topic"></a>

Pour supprimer un sujet existant et tous ses abonnements, utilisez l'[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)opération.

Les messages qui n’ont pas encore été livrés aux abonnés seront également supprimés.

 **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'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

## Obtenir les attributs des rubriques
<a name="get-topic-attributes"></a>

Pour récupérer les propriétés d'une seule rubrique existante, utilisez l'[GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.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'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

## Définir les attributs de la rubrique
<a name="set-topic-attributes"></a>

Pour mettre à jour les propriétés d'une seule rubrique existante, utilisez l'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)opération.

Vous ne pouvez définir que les attributs `Policy`, `DisplayName` et `DeliveryPolicy`.

 **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'
]);
$attribute = 'Policy | DisplayName | DeliveryPolicy';
$value = 'First Topic';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->setTopicAttributes([
        'AttributeName' => $attribute,
        'AttributeValue' => $value,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

# Gestion des abonnements dans Amazon SNS avec AWS SDK pour PHP la version 3
<a name="sns-examples-subscribing-unsubscribing-topics"></a>

Utilisez les rubriques Amazon Simple Notification Service (Amazon SNS) pour envoyer des notifications à Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS, adresses e-mail, (), ou. AWS Server Migration Service AWS SMS AWS Lambda

Les abonnements sont attachés à une rubrique qui gère l’envoi de messages aux abonnés. Pour en savoir plus sur la création de rubriques, [consultez la section Gestion des rubriques dans Amazon SNS avec la AWS SDK pour PHP version 3](sns-examples-managing-topics.md).

Les exemples suivants montrent comment :
+ S’abonner à une rubrique existante à l’aide de [Subscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#subscribe).
+ Vérifiez un abonnement à l'aide de [ConfirmSubscription](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#confirmsubscription).
+ Répertoriez les abonnements existants en utilisant [ListSubscriptionsByTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listsubscriptionsbytopic).
+ Supprimer un abonnement à l’aide de [Unsubscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#unsubscribe).
+ Envoyer un message à tous les abonnés d’une rubrique à 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 la section [Utilisation d'Amazon System-to-System SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-system-to-system-messaging.html) pour la messagerie.

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).

## Abonner une adresse e-mail à une rubrique
<a name="subscribe-an-email-address-to-a-topic"></a>

Pour lancer un abonnement à une adresse e-mail, utilisez l’opération [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une adresse e-mail. Un jeton de confirmation est envoyé à cette adresse e-mail. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

 **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'
]);

$protocol = 'email';
$endpoint = 'sample@example.com';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Abonnement d'un point de terminaison d'application à une rubrique
<a name="subscribe-an-application-endpoint-to-a-topic"></a>

Pour lancer un abonnement à une application Web, utilisez l’opération [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une URL. Un jeton de confirmation est envoyé à cette adresse Web. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

 **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'
]);

$protocol = 'https';
$endpoint = 'https://';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Abonner une fonction Lambda à une rubrique
<a name="subscribe-a-lam-function-to-a-topic"></a>

Pour initier un abonnement à une fonction Lambda, utilisez l'opération [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

Dans cet exemple, le point de terminaison est une fonction Lambda. Un jeton de confirmation est envoyé à cette fonction Lambda. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

 **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'
]);

$protocol = 'lambda';
$endpoint = 'arn:aws:lambda:us-east-1:123456789023:function:messageStore';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Abonnement d'un SMS à un sujet
<a name="subscribe-a-text-sms-to-a-topic"></a>

Pour envoyer des messages SMS à plusieurs numéros de téléphone en même temps, abonnez chaque numéro à une rubrique.

Pour lancer un abonnement à un numéro de téléphone, utilisez l’opération [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Vous pouvez utiliser la méthode subscribe pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis. Cette action est présentée dans d’autres exemples de cette rubrique.

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

Un jeton de confirmation est envoyé à ce numéro de téléphone. Vérifiez l’abonnement avec ce jeton de confirmation dans un délai de trois jours à compter de la réception.

Pour une autre méthode d'envoi de SMS avec Amazon SNS, consultez la section [Envoi de messages SMS dans Amazon SNS avec AWS SDK pour PHP](sns-examples-sending-sms.md) la version 3.

 **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'
]);

$protocol = 'sms';
$endpoint = '+1XXX5550100';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Confirmer l'abonnement à un sujet
<a name="confirm-subscription-to-a-topic"></a>

Pour créer un abonnement, le propriétaire du point de terminaison doit confirmer l’intention de recevoir des messages envoyés par la rubrique à l’aide d’un jeton transmis lorsqu’un abonnement est établi initialement, comme indiqué précédemment. Les jetons de confirmation sont valides pendant trois jours. Au bout de trois jours, vous pouvez renvoyer un jeton en créant un nouvel abonnement.

Pour confirmer un abonnement, utilisez l'[ConfirmSubscription](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.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'
]);

$subscription_token = 'arn:aws:sns:us-east-1:111122223333:MyTopic:123456-abcd-12ab-1234-12ba3dc1234a';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->confirmSubscription([
        'Token' => $subscription_token,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Répertorier les abonnements à une rubrique
<a name="list-subscriptions-to-a-topic"></a>

Pour répertorier jusqu'à 100 abonnements existants dans une AWS région donnée, utilisez l'[ListSubscriptions](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.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->listSubscriptions();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Annulation de l’abonnement à une rubrique
<a name="unsubscribe-from-a-topic"></a>

Pour supprimer un point de terminaison abonné à une rubrique, utilisez l’opération [Unsubscribe](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html).

Si l'abonnement nécessite une authentification pour être supprimé, seul le propriétaire de l'abonnement ou le propriétaire du sujet peut se désabonner, et une AWS signature est requise. Si l'appel de désabonnement ne nécessite pas l'authentification et si le demandeur n'est pas le propriétaire de l'abonnement, un message d'annulation final est remis au point de terminaison.

 **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'
]);

$subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription';

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

## Publier un message sur une rubrique Amazon SNS
<a name="publish-a-message-to-an-sns-topic"></a>

Pour envoyer un message à chaque point de terminaison abonné à une rubrique Amazon SNS, utilisez l'opération [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html).

Créez un objet contenant les paramètres de publication d'un message, notamment le texte du message et le nom de ressource Amazon (ARN) de la rubrique Amazon SNS.

 **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.';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

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

# 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 (\$1) et le code pays. Par exemple, un numéro de téléphone américain au format E.164 s'affichera sous la forme \$11001 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());
}
```