

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempi di Amazon SNS con la versione 3 AWS SDK per PHP
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) è un servizio Web che coordina e gestisce la consegna o l'invio di messaggi a endpoint o client abbonati.

In Amazon SNS esistono due tipi di client: editori (noti anche come produttori) e abbonati (detti anche consumatori). Gli editori comunicano in modo asincrono con i sottoscrittori producendo e inviando un messaggio a un argomento, che rappresenta un punto di accesso logico e un canale di comunicazione. Gli abbonati (server Web, indirizzi e-mail, code Amazon SQS AWS Lambda , funzioni) utilizzano o ricevono il messaggio o la notifica tramite uno dei protocolli supportati (Amazon SQS HTTP/HTTPS URLs, email AWS SMS, Lambda) quando sono abbonati all'argomento.

[Tutto il codice di esempio per la AWS SDK per PHP versione 3 è disponibile qui. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

**Topics**
+ [Gestione degli argomenti](sns-examples-managing-topics.md)
+ [Gestione degli abbonamenti](sns-examples-subscribing-unsubscribing-topics.md)
+ [Invio di messaggi SMS Amazon](sns-examples-sending-sms.md)

# Gestione degli argomenti in Amazon SNS con la versione 3 AWS SDK per PHP
<a name="sns-examples-managing-topics"></a>

Per inviare notifiche ad Amazon Simple Queue Service (Amazon SQS) HTTP/HTTPS URLs, invia un'e-mail AWS Lambda o AWS SMS, devi prima creare un argomento che gestisca la consegna dei messaggi a tutti gli abbonati di quell'argomento.

In termini di modello di progettazione dell'osservatore, un argomento è come il soggetto. Dopo aver creato un argomento, è possibile aggiungere sottoscrittori che vengono automaticamente avvisati quando viene pubblicato un messaggio relativo all'argomento.

Scopri di più sulla sottoscrizione agli argomenti in [Gestione degli abbonamenti in Amazon AWS SDK per PHP SNS](sns-examples-subscribing-unsubscribing-topics.md) con la versione 3.

Gli esempi seguenti mostrano come:
+ Crea un argomento da utilizzare per la pubblicazione delle notifiche. [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic)
+ Restituisce un elenco degli argomenti del richiedente utilizzando [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic).
+ Elimina un argomento e tutte le relative sottoscrizioni utilizzando. [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic)
+ Restituisce tutte le proprietà di un argomento utilizzando [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Consenti al proprietario di un argomento di impostare un attributo dell'argomento su un nuovo valore utilizzando [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Per ulteriori informazioni sull'uso di Amazon SNS, consulta Amazon SNS [Topic Attributes for Message Delivery](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html) Status.

Tutto il codice di esempio per AWS SDK per PHP è disponibile [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code). GitHub

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

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

## Creazione di un argomento
<a name="create-a-topic"></a>

Per creare un argomento, usa l'[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)operazione.

Il nome di ogni argomento nel tuo Account AWS deve essere unico.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Elenca i tuoi argomenti
<a name="list-your-topics"></a>

Per elencare fino a 100 argomenti esistenti nella AWS regione corrente, usa l'[ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Eliminazione di un argomento
<a name="delete-a-topic"></a>

Per rimuovere un argomento esistente e tutte le relative sottoscrizioni, utilizzate l'[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)operazione.

Tutti i messaggi non recapitati ancora agli abbonati verranno eliminati.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Ottieni gli attributi dell'argomento
<a name="get-topic-attributes"></a>

Per recuperare le proprietà di un singolo argomento esistente, usa l'[GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Impostazione degli attributi degli argomenti
<a name="set-topic-attributes"></a>

Per aggiornare le proprietà di un singolo argomento esistente, utilizzate l'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)operazione.

È possibile impostare solo gli attributi `Policy`, `DisplayName` e `DeliveryPolicy`.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

# Gestione degli abbonamenti in Amazon SNS AWS SDK per PHP con la versione 3
<a name="sns-examples-subscribing-unsubscribing-topics"></a>

Utilizza gli argomenti di Amazon Simple Notification Service (Amazon SNS) per inviare notifiche ad Amazon Simple Queue Service (Amazon SQS), HTTP/HTTPS, indirizzi e-mail, () oppure. AWS Server Migration Service AWS SMS AWS Lambda

Le sottoscrizioni sono collegate a un argomento che gestisce l'invio di messaggi ai sottoscrittori. Scopri di più sulla creazione di argomenti in [Gestione degli argomenti in Amazon SNS con la AWS SDK per PHP versione 3](sns-examples-managing-topics.md).

Gli esempi seguenti mostrano come:
+ Iscriviti a un argomento esistente utilizzando [Subscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#subscribe).
+ Verifica un abbonamento utilizzando [ConfirmSubscription](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#confirmsubscription).
+ Elenca gli abbonamenti esistenti utilizzando [ListSubscriptionsByTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listsubscriptionsbytopic).
+ Elimina un abbonamento utilizzando [Unsubscribe](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#unsubscribe).
+ Invia un messaggio a tutti i sottoscrittori di un argomento utilizzando [Publish](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish).

Per ulteriori informazioni sull'uso di Amazon SNS, consulta [Using Amazon System-to-System SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-system-to-system-messaging.html) for Messaging.

Tutto il codice di esempio per AWS SDK per PHP è disponibile [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code). GitHub

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

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

## Sottoscrizione di un indirizzo e-mail a un argomento
<a name="subscribe-an-email-address-to-a-topic"></a>

Per avviare una sottoscrizione a un indirizzo e-mail, utilizzare l'operazione [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Puoi utilizzare il metodo di sottoscrizione per sottoscrivere diversi endpoint a un argomento Amazon SNS, a seconda dei valori utilizzati per i parametri passati. Questo è illustrato in altri esempi di questo argomento.

In questo esempio, l'endpoint è un indirizzo e-mail. Un token di conferma viene inviato a questa e-mail. Verifica la sottoscrizione con questo token di conferma entro tre giorni dalla ricezione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Sottoscrivi un endpoint applicativo a un argomento
<a name="subscribe-an-application-endpoint-to-a-topic"></a>

Per avviare una sottoscrizione a un'app Web, utilizza l'operazione [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Puoi utilizzare il metodo di sottoscrizione per sottoscrivere diversi endpoint a un argomento Amazon SNS, a seconda dei valori utilizzati per i parametri passati. Questo è illustrato in altri esempi di questo argomento.

In questo esempio, l'endpoint è un URL. Un token di conferma viene inviato a questo indirizzo Web. Verifica la sottoscrizione con questo token di conferma entro tre giorni dalla ricezione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Sottoscrizione di una funzione Lambda a un argomento
<a name="subscribe-a-lam-function-to-a-topic"></a>

Per avviare una sottoscrizione a una funzione Lambda, utilizzare [l'](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)operazione Subscribe.

Puoi utilizzare il metodo di sottoscrizione per sottoscrivere diversi endpoint a un argomento Amazon SNS, a seconda dei valori utilizzati per i parametri passati. Questo è illustrato in altri esempi di questo argomento.

In questo esempio, l'endpoint è una funzione Lambda. Un token di conferma viene inviato a questa funzione Lambda. Verifica la sottoscrizione con questo token di conferma entro tre giorni dalla ricezione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Sottoscrivi un SMS di testo a un argomento
<a name="subscribe-a-text-sms-to-a-topic"></a>

Per inviare messaggi SMS a più numeri di telefono nello stesso momento, sottoscrivi ogni numero a un argomento.

Per avviare una sottoscrizione a un numero di telefono, utilizza l'operazione [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html).

Puoi utilizzare il metodo di sottoscrizione per sottoscrivere diversi endpoint a un argomento Amazon SNS, a seconda dei valori utilizzati per i parametri passati. Questo è illustrato in altri esempi di questo argomento.

In questo esempio, l'endpoint è un numero di telefono in formato E.164, uno standard per le telecomunicazioni internazionali.

Un token di conferma viene inviato a questo numero di telefono. Verifica la sottoscrizione con questo token di conferma entro tre giorni dalla ricezione.

Per un modo alternativo di inviare messaggi SMS con Amazon SNS, consulta [Invio di messaggi SMS in Amazon SNS con AWS SDK per PHP](sns-examples-sending-sms.md) la versione 3.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Conferma l'iscrizione a un argomento
<a name="confirm-subscription-to-a-topic"></a>

Per creare una sottoscrizione, il proprietario dell'endpoint deve confermare l'intenzione di ricevere messaggi da un argomento utilizzando un token inviato quando una sottoscrizione viene inizialmente stabilita, come descritto in precedenza. I token di conferma sono validi per tre giorni. Dopo tre giorni, è possibile inviare nuovamente un token mediante la creazione di una nuova sottoscrizione.

Per confermare un abbonamento, usa l'[ConfirmSubscription](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Elenca le sottoscrizioni a un argomento
<a name="list-subscriptions-to-a-topic"></a>

Per elencare fino a 100 abbonamenti esistenti in una determinata AWS regione, usa l'[ListSubscriptions](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Annullamento della sottoscrizione a un argomento
<a name="unsubscribe-from-a-topic"></a>

Per rimuovere un endpoint da un argomento, utilizzare l'operazione [Unsubscribe](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html).

Se l'abbonamento richiede l'autenticazione per l'eliminazione, solo il proprietario dell'abbonamento o il proprietario dell'argomento può annullare l'iscrizione ed è richiesta una AWS firma. Se la chiamata di annullamento della registrazione non richiede l'autenticazione e il richiedente non è il proprietario della sottoscrizione, un messaggio di annullamento finale viene inviato all'endpoint.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Pubblicare un messaggio su un argomento di Amazon SNS
<a name="publish-a-message-to-an-sns-topic"></a>

[Per recapitare un messaggio a ciascun endpoint sottoscritto a un argomento di Amazon SNS, utilizza l'operazione di pubblicazione.](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)

Crea un oggetto che contenga i parametri per la pubblicazione di un messaggio, incluso il testo del messaggio e l'Amazon Resource Name (ARN) dell'argomento Amazon SNS.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

# Invio di messaggi SMS in Amazon SNS con la versione 3 AWS SDK per PHP
<a name="sns-examples-sending-sms"></a>

Puoi utilizzare Amazon Simple Notification Service (Amazon SNS) per inviare messaggi di testo o SMS a dispositivi dotati di SMS. Puoi inviare un messaggio direttamente a un numero di telefono oppure inviarlo a più numeri contemporaneamente sottoscrivendo quei numeri a un argomento e inviando il messaggio all'argomento.

Usa Amazon SNS per specificare le preferenze per la messaggistica SMS, ad esempio il modo in cui le consegne sono ottimizzate (in termini di costi o per una consegna affidabile), il limite di spesa mensile, il modo in cui vengono registrate le consegne dei messaggi e se abbonarsi ai report giornalieri sull'utilizzo degli SMS. Queste preferenze vengono recuperate e impostate come attributi SMS per Amazon SNS.

Quando invii un SMS, ricorda di specificare il numero di telefono utilizzando il formato E.164. E.164 è uno standard per la struttura del numero di telefono utilizzato per le telecomunicazioni internazionali. I numeri di telefono che seguono questo formato possono avere un massimo di 15 cifre e sono preceduti dal segno più (\$1) e dal prefisso del paese. Ad esempio, un numero di telefono statunitense in formato E.164 apparirebbe come \$11001 0100. XXX555

Gli esempi seguenti mostrano come:
+ [Recupera le impostazioni predefinite per l'invio di messaggi SMS dal tuo account utilizzando Get. SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#getsmsattributes)
+ Aggiorna le impostazioni predefinite per l'invio di messaggi SMS dal tuo account utilizzando [Set SMSAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#setsmsattributes).
+ Scopri se il proprietario di un determinato numero di telefono ha scelto di non ricevere SMS dal tuo account utilizzando [CheckIfPhoneNumberISOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#checkifphonenumberisoptedout).
+ Elenca i numeri di telefono utilizzati dal proprietario per i quali il proprietario ha scelto di non ricevere SMS dal tuo account. [ListPhoneNumberOptedOut](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listphonenumbersoptedout)
+ Invia un messaggio di testo SMS (messaggio) direttamente a un numero di telefono utilizzando [Publish](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#publish).

Per ulteriori informazioni sull'uso di Amazon SNS, consulta [Utilizzo di Amazon SNS per le notifiche utente con un numero di cellulare come abbonato (invio SMS](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)).

[Tutto il codice di esempio per AWS SDK per PHP è disponibile qui. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)

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

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

## Ottieni gli attributi SMS
<a name="get-sms-attributes"></a>

Per recuperare le impostazioni predefinite per i messaggi SMS, utilizzate l'SMSAttributesoperazione [Get](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSAttributes.html).

Questo esempio si riferisce all'attributo `DefaultSMSType`. Questo attributo consente di controllare se i messaggi SMS vengono inviati come `Promotional` per ottimizzare il recapito dei messaggi e permettere di contenere i costi, oppure come `Transactional` per ottimizzare il recapito dei messaggi e ottenere la massima affidabilità.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Imposta gli attributi SMS
<a name="set-sms-attributes"></a>

Per aggiornare le impostazioni predefinite per i messaggi SMS, utilizzare l'SMSAttributesoperazione [Set](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html).

Questo esempio imposta l'attributo `DefaultSMSType` su `Transactional`, ottimizzando il recapito dei messaggi per ottenere la massima affidabilità.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Verifica se un numero di telefono è stato disattivato
<a name="check-if-a-phone-number-has-opted-out"></a>

Per determinare se il proprietario di un determinato numero di telefono ha scelto di non ricevere messaggi SMS dal tuo account, utilizza l'[CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_CheckIfPhoneNumberIsOptedOut.html)operazione.

In questo esempio, il numero di telefono è in formato E.164, uno standard per le telecomunicazioni internazionali.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Elenca i numeri di telefono esclusi
<a name="list-opted-out-phone-numbers"></a>

Per recuperare un elenco di numeri di telefono a cui il proprietario ha scelto di non ricevere SMS dal tuo account, utilizza l'operazione. [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_ListPhoneNumbersOptedOut.html)

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Pubblica su un messaggio di testo (messaggio SMS)
<a name="publish-to-a-text-message-sms-message"></a>

Per distribuire un messaggio di testo (messaggio SMS) direttamente a un numero di telefono, utilizzare l'operazione [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html).

In questo esempio, il numero di telefono è in formato E.164, uno standard per le telecomunicazioni internazionali.

I messaggi SMS possono contenere fino a 140 byte. Le dimensioni massime di una singola pubblicazione SMS sono di 1.600 byte.

Per ulteriori informazioni sull'invio di messaggi SMS, vedi [Invio di un messaggio SMS](https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html).

 **Importazioni** 

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

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

 **Codice di esempio** 

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