La classe `BulkGate\Sdk\Message\Viber` représente l'objet du message Viber, composé du contenu du message et du destinataire.

```php
use BulkGate\Sdk\Message\Viber;
use BulkGate\Sdk\Message\Component\{Button, Image, PhoneNumber, SimpleText}
```

## Destinataire

La classe accepte comme premier argument un numéro de téléphone, qui peut être indiqué sous forme de chaîne :

```php
$message = new Viber('420777777777', 'test message');
```

ou une instance de l'objet `BulkGate\Sdk\Message\Component\PhoneNumber` :

```php
$message = new Viber(new PhoneNumber('777777777', 'cz'), 'test message');
```

Pour obtenir le numéro de téléphone, vous pouvez afficher l'objet de la classe `BulkGate\Sdk\Message\Component\PhoneNumber`, qui renvoie toujours le numéro de téléphone sous forme de chaîne.

Vous pouvez aussi définir le numéro de téléphone et l'ISO séparément

```php
$phone_number = new PhoneNumber();
$phone_number->phoneNumber('777777777');
$phone_number->iso('cz');       
```

## Texte du message

Le deuxième paramètre est le texte du message. Là aussi, il existe 2 possibilités : indiquer le texte sous forme de `string`, ou passer une instance de la classe `SimpleText` (ou `null`).

```php
$phone_number = new PhoneNumber('777777777', 'cz');
$text = new SimpleText('test <variable>', ['variable' => 'message']);
$message = new Viber($phone_number, $text);
```

Vous pouvez bien sûr définir le texte même après la création de l'instance de l'objet, à l'aide de la méthode `text(string $text, array $variables = [])`

```php
$phone_number = new PhoneNumber('420777777777', 'cz');
$message = new Viber($phone_number);
$message->text('test <variable>', ['variable' => 'message'])
```

## Paramètres
Le troisième paramètre de l'objet Viber est `sender`, défini comme `string`.

```php
$message = new Viber('420777777777', 'text message', 'Sender');
```

Viber permet d'utiliser des boutons et des images dans vos messages.

Les paramètres d'entrée du bouton comprennent la chaîne du libellé et l'URL qui détermine où mène le bouton.
Les paramètres d'entrée de l'image comprennent l'URL de l'image et un `boolean` qui détermine si l'image pourra être agrandie.

```php
$button = new Button('Caption', 'url');
$image = new Image('image url', false);
$message = new Viber('420777777777', 'text message', 'Sender', $button, $image);
```

Le dernier paramètre est la durée de validité du message en secondes. Si vous
l'omettez, la valeur par défaut est de **10 800 s (3 heures)** — passé ce délai,
un message Viber non livré est abandonné (dans le cas d'un
[message multicanal](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-message-multicanal/2.0/), il est renvoyé
sous forme de SMS).

```php
$message = new Viber('420777777777', 'text message', 'Sender', $button, $image, 3_600);
```