Die Klasse `BulkGate\Sdk\Message\Viber` stellt das Objekt der Viber-Nachricht dar, das aus dem Inhalt der Nachricht und dem Empfänger besteht.

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

## Empfänger

Als erstes Argument nimmt die Klasse eine Telefonnummer entgegen, die als String angegeben werden kann:

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

oder eine Instanz des Objekts `BulkGate\Sdk\Message\Component\PhoneNumber`:

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

Um die Telefonnummer zu erhalten, können Sie das Objekt der Klasse `BulkGate\Sdk\Message\Component\PhoneNumber` ausgeben, das die Telefonnummer immer als String zurückgibt.

Telefonnummer und ISO-Code können Sie auch getrennt festlegen

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

## Nachrichtentext

Der zweite Parameter ist der Text der Nachricht. Auch hier gibt es 2 Möglichkeiten: Entweder geben Sie den Text als `string` an oder als Instanz der Klasse `SimpleText` – oder Sie übergeben `null`.

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

Selbstverständlich können Sie den Text auch nach dem Erstellen der Objektinstanz mit der Methode `text(string $text, array $variables = [])` festlegen

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

## Einstellungen
Der dritte Parameter des Viber-Objekts ist `sender`, definiert als `string`.

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

Viber bietet die Möglichkeit, in Ihren Nachrichten Schaltflächen und Bilder zu verwenden.

Die Eingabeparameter der Schaltfläche sind die Beschriftung als String und die URL, auf die die Schaltfläche verweist.
Die Eingabeparameter des Bildes sind die URL des Bildes und ein `boolean`, das bestimmt, ob das Bild vergrößert werden kann.

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

Der letzte Parameter ist die Gültigkeitsdauer der Nachricht in Sekunden. Wenn Sie ihn
weglassen, gilt der Standardwert **10.800 s (3 Stunden)** — danach wird eine nicht zugestellte Viber-Nachricht
verworfen (bei einer
[Multichannel-Nachricht](https://www.bulkgate.com/de/dokumentation/php-sdk/php-sdk-multichannel-nachricht/2.0/) wird sie stattdessen
als SMS gesendet).

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