

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon SNS SNS-Beispiele mit AWS SDK für PHP Version 3
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) ist ein Webservice, der die Zustellung oder den Versand von Nachrichten an abonnierte Endpunkte oder Kunden koordiniert und verwaltet.

In Amazon SNS gibt es zwei Arten von Kunden: Verlage (auch als Produzenten bezeichnet) und Abonnenten (auch als Verbraucher bezeichnet). Herausgeber kommunizieren asynchron mit Abonnenten, indem sie eine Nachricht erstellen und an ein Thema senden, bei dem es sich wirklich um einen logischen Zugriffspunkt und Kommunikationskanal handelt. Abonnenten (Webserver, E-Mail-Adressen, Amazon SQS-Warteschlangen, AWS Lambda Funktionen) konsumieren oder empfangen die Nachricht oder Benachrichtigung über eines der unterstützten Protokolle (Amazon SQS, E-Mail HTTP/HTTPS URLs, Lambda) AWS SMS, wenn sie das Thema abonniert haben.

[Der gesamte Beispielcode für AWS SDK für PHP Version 3 ist hier verfügbar. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

**Topics**
+ [Themen verwalten](sns-examples-managing-topics.md)
+ [Verwalten von Abonnements](sns-examples-subscribing-unsubscribing-topics.md)
+ [Senden von Amazon-SMS-Nachrichten](sns-examples-sending-sms.md)

# Themen in Amazon SNS mit AWS SDK für PHP Version 3 verwalten
<a name="sns-examples-managing-topics"></a>

Um Benachrichtigungen an Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS URLs, E-Mail, AWS SMS oder zu senden AWS Lambda, müssen Sie zunächst ein Thema erstellen, das die Zustellung von Nachrichten an alle Abonnenten dieses Themas verwaltet.

Im Hinblick auf das Entwurfsmuster ist ein Thema für den Beobachter mit dem Betreff vergleichbar. Nach dem Erstellen eines Themas können Sie Abonnenten hinzufügen, die automatisch benachrichtigt werden, wenn eine Nachricht im Thema veröffentlicht wird.

Weitere Informationen zum Abonnieren von Themen finden Sie unter [Verwaltung von Abonnements in Amazon SNS mit AWS SDK für PHP Version 3.](sns-examples-subscribing-unsubscribing-topics.md)

In den nachstehenden Beispielen wird Folgendes veranschaulicht:
+ Erstellen Sie ein Thema, um Benachrichtigungen zu veröffentlichen, um es zu verwenden. [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic)
+ Gibt eine Liste der Themen des Anfragenden zurück, indem Sie [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic).
+ Löschen Sie ein Thema und alle zugehörigen Abonnements mit [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic).
+ Gibt alle Eigenschaften eines Themas zurück mit [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Erlauben Sie einem Themenbesitzer, ein Attribut des Themas auf einen neuen Wert zu setzen, indem Sie [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Weitere Informationen zur Verwendung von Amazon SNS finden Sie unter Amazon SNS [SNS-Thema Attribute für den Status der Nachrichtenzustellung](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html).

Der gesamte Beispielcode für AWS SDK für PHP ist [hier verfügbar. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

## Anmeldeinformationen
<a name="examplecredentials"></a>

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschrieben[Authentifizierung AWS mit AWS SDK für PHP Version 3](credentials.md). Importieren Sie dann die AWS SDK für PHP, wie unter beschrieben[Installation der AWS SDK für PHP Version 3](getting-started_installation.md).

## Erstellen eines Themas
<a name="create-a-topic"></a>

Verwenden Sie die [CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)Operation, um ein Thema zu erstellen.

Jeder Themenname in Ihrem AWS-Konto muss eindeutig sein.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Listen Sie Ihre Themen auf
<a name="list-your-topics"></a>

Verwenden Sie die [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)Operation, um bis zu 100 bestehende Themen in der aktuellen AWS Region aufzulisten.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Löschen eines Themas
<a name="delete-a-topic"></a>

Verwenden Sie den [DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)Vorgang, um ein vorhandenes Thema und alle zugehörigen Abonnements zu entfernen.

Alle Nachrichten, die den Abonnenten noch nicht zugestellt wurden, werden ebenfalls gelöscht.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Themenattribute abrufen
<a name="get-topic-attributes"></a>

Verwenden Sie den [GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)Vorgang, um Eigenschaften eines einzelnen vorhandenen Themas abzurufen.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Festlegen von Themenattributen
<a name="set-topic-attributes"></a>

Verwenden Sie den [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)Vorgang, um die Eigenschaften eines einzelnen vorhandenen Themas zu aktualisieren.

Sie können nur die Attribute `Policy`, `DisplayName` und `DeliveryPolicy` festlegen.

 **Importe** 

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

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

 **Beispiel-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());
}
```

# Verwaltung von Abonnements in Amazon SNS mit AWS SDK für PHP Version 3
<a name="sns-examples-subscribing-unsubscribing-topics"></a>

Verwenden Sie Amazon Simple Notification Service (Amazon SNS) -Themen, um Benachrichtigungen an Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS, E-Mail-Adressen, AWS Server Migration Service (AWS SMS) oder zu senden. AWS Lambda

Abonnements werden einem Thema angefügt, das das Senden von Nachrichten an Abonnenten verwaltet. Weitere Informationen zum Erstellen von Themen finden Sie [unter Themen in Amazon SNS mit AWS SDK für PHP Version 3 verwalten](sns-examples-managing-topics.md).

In den nachstehenden Beispielen wird Folgendes veranschaulicht:
+ Abonnieren Sie ein vorhandenes Thema mit der Operation [Subscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#subscribe).
+ Überprüfen Sie ein Abonnement mit [ConfirmSubscription](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#confirmsubscription).
+ Bestehende Abonnements auflisten mit [ListSubscriptionsByTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listsubscriptionsbytopic).
+ Löschen Sie ein Abonnement mit der Operation [Unsubscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#unsubscribe).
+ Senden Sie eine Nachricht an alle Abonnenten eines Themas mit der Operation [Publish](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish).

Weitere Informationen zur Verwendung von Amazon SNS finden Sie unter [Amazon SNS for System-to-System Messaging verwenden](https://docs.aws.amazon.com/sns/latest/dg/sns-system-to-system-messaging.html).

Der gesamte Beispielcode für AWS SDK für PHP ist [hier verfügbar. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

## Anmeldeinformationen
<a name="examplecredentials"></a>

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschrieben[Authentifizierung AWS mit AWS SDK für PHP Version 3](credentials.md). Importieren Sie dann die AWS SDK für PHP, wie unter beschrieben[Installation der AWS SDK für PHP Version 3](getting-started_installation.md).

## Abonnieren einer E-Mail-Adresse für ein Thema
<a name="subscribe-an-email-address-to-a-topic"></a>

Um ein Abonnement für eine E-Mail-Adresse abzuschließen, verwenden Sie die Operation [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Sie können die Abonnement-Methode verwenden, um mehrere verschiedene Endpunkte für ein Amazon SNS SNS-Thema zu abonnieren, abhängig von den Werten, die für die übergebenen Parameter verwendet werden. Dies wird in anderen Beispielen in diesem Thema veranschaulicht.

In diesem Beispiel handelt es sich bei dem Endpunkt um eine E-Mail-Adresse. Ein Bestätigungs-Token wird an diese E-Mail-Adresse gesendet. Verifizieren Sie das Abonnement mit diesem Bestätigungs-Token innerhalb von drei Tagen nach Erhalt.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Abonnieren Sie ein Thema über einen Anwendungsendpunkt
<a name="subscribe-an-application-endpoint-to-a-topic"></a>

Um ein Abonnement für eine Web-App abzuschließen, verwenden Sie die Operation [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Sie können die Abonnement-Methode verwenden, um mehrere verschiedene Endpunkte für ein Amazon SNS SNS-Thema zu abonnieren, abhängig von den Werten, die für die übergebenen Parameter verwendet werden. Dies wird in anderen Beispielen in diesem Thema veranschaulicht.

In diesem Beispiel ist der Endpunkt eine URL. Ein Bestätigungs-Token wird an diese Webadresse gesendet. Verifizieren Sie das Abonnement mit diesem Bestätigungs-Token innerhalb von drei Tagen nach Erhalt.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Abonnieren eines Themas mit einer Lambda-Funktion
<a name="subscribe-a-lam-function-to-a-topic"></a>

Verwenden Sie den Vorgang [Abonnieren](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html), um ein Abonnement für eine Lambda-Funktion zu initiieren.

Sie können die Abonnement-Methode verwenden, um mehrere verschiedene Endpunkte für ein Amazon SNS SNS-Thema zu abonnieren, abhängig von den Werten, die für die übergebenen Parameter verwendet werden. Dies wird in anderen Beispielen in diesem Thema veranschaulicht.

In diesem Beispiel ist der Endpunkt eine Lambda-Funktion. Ein Bestätigungstoken wird an diese Lambda-Funktion gesendet. Verifizieren Sie das Abonnement mit diesem Bestätigungs-Token innerhalb von drei Tagen nach Erhalt.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Abonnieren Sie eine Text-SMS zu einem Thema
<a name="subscribe-a-text-sms-to-a-topic"></a>

Um SMS-Nachrichten an mehrere Telefonnummern gleichzeitig zu senden, abonnieren Sie ein Thema mit jeder einzelnen Telefonnummer.

Um ein Abonnement für eine Telefonnummer abzuschließen, verwenden Sie die Operation [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Sie können die Abonnement-Methode verwenden, um mehrere verschiedene Endpunkte für ein Amazon SNS SNS-Thema zu abonnieren, abhängig von den Werten, die für die übergebenen Parameter verwendet werden. Dies wird in anderen Beispielen in diesem Thema veranschaulicht.

In diesem Beispiel ist der Endpunkt eine Telefonnummer im E.164-Format, einem Standard für die internationale Schreibweise für Telefonnummern.

Ein Bestätigungs-Token wird an diese Telefonnummer gesendet. Verifizieren Sie das Abonnement mit diesem Bestätigungs-Token innerhalb von drei Tagen nach Erhalt.

Eine alternative Methode zum Senden von SMS-Nachrichten mit Amazon SNS finden Sie unter [Senden von SMS-Nachrichten in Amazon SNS mit AWS SDK für PHP Version 3.](sns-examples-sending-sms.md)

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Bestätigen Sie das Abonnement für ein Thema
<a name="confirm-subscription-to-a-topic"></a>

Um ein Abonnement letztendlich zu erstellen, muss der Eigentümer des Endpunkts die Absicht, Nachrichten von dem Thema zu empfangen, mithilfe eines Tokens bestätigen, das beim anfänglichen Abschluss des Abonnements gesendet wurde, wie zuvor beschrieben. Bestätigungs-Token sind drei Tage gültig. Nach drei Tagen können Sie ein Token erneut senden, indem Sie ein neues Abonnement abschließen.

Verwenden Sie den [ConfirmSubscription](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)Vorgang, um ein Abonnement zu bestätigen.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Abonnements für ein Thema auflisten
<a name="list-subscriptions-to-a-topic"></a>

Verwenden Sie den [ListSubscriptions](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html)Vorgang, um bis zu 100 bestehende Abonnements in einer bestimmten AWS Region aufzulisten.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Abbestellen eines Themas
<a name="unsubscribe-from-a-topic"></a>

Verwenden Sie zum Entfernen eines Endpunkts, für den ein Thema abonniert wurde, die Operation [Unsubscribe](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html).

Wenn für das Löschen des Abonnements eine Authentifizierung erforderlich ist, kann nur der Eigentümer des Abonnements oder der Eigentümer des Themas das Abonnement kündigen. Eine AWS Unterschrift ist erforderlich. Wenn der Kündigungsaufruf keine Authentifizierung erfordert und der Anforderer nicht der Eigentümer des Abonnements ist, wird eine Nachricht über die endgültige Kündigung des Abonnements an den Endpunkt gesendet.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Eine Nachricht zu einem Amazon SNS SNS-Thema veröffentlichen
<a name="publish-a-message-to-an-sns-topic"></a>

Verwenden Sie den Vorgang [Veröffentlichen](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html), um eine Nachricht an jeden Endpunkt zu senden, der ein Amazon SNS SNS-Thema abonniert hat.

Erstellen Sie ein Objekt, das die Parameter für die Veröffentlichung einer Nachricht enthält, einschließlich des Nachrichtentextes und des Amazon-Ressourcennamens (ARN) des Amazon SNS-Themas.

 **Importe** 

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

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

 **Beispiel-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());
}
```

# Senden von SMS-Nachrichten in Amazon SNS mit der AWS SDK für PHP Version 3
<a name="sns-examples-sending-sms"></a>

Sie können Amazon Simple Notification Service (Amazon SNS) verwenden, um Textnachrichten oder SMS-Nachrichten an SMS-fähige Geräte zu senden. Sie können eine Nachricht direkt an eine Telefonnummer senden oder Sie können eine Nachricht an mehrere Telefonnummern gleichzeitig senden, indem Sie das Thema für diese Telefonnummern abonnieren und die Nachricht an das Thema senden.

Verwenden Sie Amazon SNS, um Einstellungen für SMS-Nachrichten festzulegen, z. B. wie Ihre Lieferungen optimiert werden (aus Kostengründen oder für eine zuverlässige Zustellung), Ihr monatliches Ausgabenlimit, wie Nachrichtenzustellungen protokolliert werden und ob Sie tägliche SMS-Nutzungsberichte abonnieren möchten. Diese Einstellungen werden abgerufen und als SMS-Attribute für Amazon SNS festgelegt.

Wenn Sie eine SMS-Nachricht senden, geben Sie die Telefonnummer im E.164-Format an. Die Richtlinie E.164 legt die internationale Schreibweise für Telefonnummern fest. Telefonnummern in diesem Format bestehen aus maximal 15 Zeichen sowie einem vorangestellten Plus-Zeichen (\$1) und der Ländervorwahl. Eine US-Telefonnummer im E.164-Format würde beispielsweise als XXX555 \$11001 0100 angezeigt.

In den nachstehenden Beispielen wird Folgendes veranschaulicht:
+ [Rufen Sie mit Get die Standardeinstellungen für das Senden von SMS-Nachrichten von Ihrem Konto aus ab. SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#getsmsattributes)
+ Aktualisieren Sie mithilfe von [Set](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#setsmsattributes) die Standardeinstellungen für das Senden von SMS-Nachrichten von Ihrem Konto ausSMSAttributes.
+ [Finden Sie mithilfe CheckIfPhoneNumber ISOpted von Out heraus, ob sich der Inhaber einer bestimmten Telefonnummer gegen den Empfang von SMS-Nachrichten von Ihrem Konto entschieden hat.](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#checkifphonenumberisoptedout)
+ Listen Sie Telefonnummern auf, bei denen der Eigentümer den Empfang von SMS-Nachrichten von Ihrem Konto mithilfe von deaktiviert hat [ListPhoneNumberOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listphonenumbersoptedout).
+ Senden Sie eine Textnachricht (SMS-Nachricht) mit [Publish](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish) direkt an eine Telefonnummer.

Weitere Informationen zur Verwendung von Amazon SNS finden Sie unter [Verwenden von Amazon SNS für Benutzerbenachrichtigungen mit einer Mobiltelefonnummer als Abonnent (SMS senden)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html).

Der gesamte Beispielcode für die AWS SDK für PHP ist [hier verfügbar. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

## Anmeldeinformationen
<a name="examplecredentials"></a>

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschrieben[Authentifizierung AWS mit AWS SDK für PHP Version 3](credentials.md). Importieren Sie dann die AWS SDK für PHP, wie unter beschrieben[Installation der AWS SDK für PHP Version 3](getting-started_installation.md).

## Holen Sie sich SMS-Attribute
<a name="get-sms-attributes"></a>

Um die Standardeinstellungen für SMS-Nachrichten abzurufen, verwenden Sie den SMSAttributes Vorgang [Abrufen](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSAttributes.html).

In diesem Beispiel wird das `DefaultSMSType`-Attribut abgerufen. Dieses Attribut steuert, ob SMS-Nachrichten als `Promotional` oder als `Transactional` gesendet werden. Im ersten Fall wird die Nachrichtenzustellung im Hinblick auf die Kosten und im zweiten Fall im Hinblick auf höchste Zuverlässigkeit optimiert.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## SMS-Attribute festlegen
<a name="set-sms-attributes"></a>

Verwenden Sie den SMSAttributes Vorgang [Set](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html), um die Standardeinstellungen für SMS-Nachrichten zu aktualisieren.

In diesem Beispiel wird das `DefaultSMSType`-Attribut auf `Transactional` festgelegt. Damit wird die Nachrichtenzustellung im Hinblick auf höchste Zuverlässigkeit optimiert.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Prüfen Sie, ob sich eine Telefonnummer abgemeldet hat
<a name="check-if-a-phone-number-has-opted-out"></a>

Verwenden Sie den [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_CheckIfPhoneNumberIsOptedOut.html)Vorgang, um festzustellen, ob der Inhaber einer bestimmten Telefonnummer den Empfang von SMS-Nachrichten von Ihrem Konto abgelehnt hat.

In diesem Beispiel folgt die Telefonnummer dem E.164-Format, einem Standard für die internationale Schreibweise für Telefonnummern.

 **Importe** 

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

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

 **Beispiel-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());
}
```

## Rufnummern auflisten, von denen Sie sich abgemeldet haben
<a name="list-opted-out-phone-numbers"></a>

Verwenden Sie den Vorgang, um eine Liste mit Telefonnummern abzurufen, für die der Eigentümer den Empfang von SMS-Nachrichten von Ihrem Konto deaktiviert hat. [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_ListPhoneNumbersOptedOut.html)

 **Importe** 

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

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

 **Beispiel-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());
}
```

## In einer Textnachricht (SMS-Nachricht) veröffentlichen
<a name="publish-to-a-text-message-sms-message"></a>

Um eine Textnachricht (SMS-Nachricht) direkt an eine Telefonnummer zu senden, verwenden Sie die Operation [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html).

In diesem Beispiel folgt die Telefonnummer dem E.164-Format, einem Standard für die internationale Schreibweise für Telefonnummern.

SMS-Nachrichten können bis zu 140 Byte enthalten. Für die veröffentlichte und in mehreren Teilen versendete SMS-Nachricht gilt eine Größenbegrenzung von 1 600 Byte.

Weitere Informationen zum Senden von SMS-Nachrichten finden Sie unter [Senden einer SMS-Nachricht](https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html).

 **Importe** 

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

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

 **Beispiel-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());
}
```