

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

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