> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Notification-Channel - LINE SDK für Laravel

> Benachrichtigungen senden durch die Integration des Laravel-Notification-Systems mit der LINE Messaging API.

## Übersicht

Mit dem `LineChannel` können Sie Nachrichten aus Laravel Notifications an LINE senden.

<Info>
  Mit der Einstellung von LINE Notify wurde auch die Unterstützung für LINE Notify beendet. Da Benachrichtigungen nun über die Messaging API erfolgen, gelten je nach Tarif Mengenbeschränkungen. Siehe [Preise der Messaging API](https://developers.line.biz/en/docs/messaging-api/pricing/).
</Info>

## Notification-Klasse

Geben Sie in `via()` `LineChannel::class` zurück und definieren Sie die Nachricht in `toLine()`.

```php theme={null}
use Illuminate\Notifications\Notification;
use Revolution\Line\Notifications\LineChannel;
use Revolution\Line\Notifications\LineMessage;

class TestNotification extends Notification
{
    public function via(object $notifiable): array
    {
        return [
            LineChannel::class,
        ];
    }

    public function toLine(object $notifiable): LineMessage
    {
        return LineMessage::create(text: 'test');
    }
}
```

## Versandmuster

### On-Demand-Benachrichtigungen

Wenn Sie Benachrichtigungen senden möchten, ohne sie an ein Benutzermodell zu binden, verwenden Sie `Notification::route()`. Empfänger ist entweder eine `userId` oder eine `groupId`.

```php theme={null}
use Illuminate\Support\Facades\Notification;

Notification::route('line', 'to')
            ->notify(new TestNotification());
```

### Benachrichtigung vom User-Modell aus

Wenn Sie den Empfänger pro User verwalten möchten, definieren Sie `routeNotificationForLine()`.

```php theme={null}
use Illuminate\Notifications\Notifiable;

class User extends Model
{
    use Notifiable;

    public function routeNotificationForLine($notification): string
    {
        return $this->line_id;
    }
}
```

```php theme={null}
$user->notify(new TestNotification());
```

<Info>
  `userId` und `groupId` können Sie aus Webhook-Ereignissen wie `FollowEvent` oder `JoinEvent` erhalten.
</Info>

## Nachrichtentypen

### Text

Sie können bis zu 5 Nachrichten senden.

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create()
                      ->text('text 1')
                      ->text('text 2');
}
```

### Absendernamen und Icon anpassen

`withSender()` muss vor den Nachrichten-Hinzufüge-Methoden aufgerufen werden.

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create()
                      ->withSender(name: 'alt-name', icon: 'https://...png')
                      ->text('text 1')
                      ->text('text 2');
}
```

Sie können den Namen und das Icon auch als Parameter von `create()` angeben.

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create(text: 'test', name: 'alt-name', icon: 'https://...png');
}
```

### Sticker

Die verwendbaren Sticker finden Sie in der [Sticker list](https://developers.line.biz/en/docs/messaging-api/sticker-list/).

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create()
                      ->text('test')
                      ->sticker(package: 446, sticker: 1988);
}
```

### Bilder

Geben Sie eine öffentliche URL an.

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create()
                      ->image(original: 'https://.../test.png', preview: 'https://.../preview.png');
}
```

### Videos

Geben Sie eine öffentliche URL an.

```php theme={null}
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    return LineMessage::create()
                      ->video(original: 'https://.../test.mp4', preview: 'https://.../preview.png');
}
```

### Weitere Nachrichtentypen

Mit `message()` können Sie beliebige Nachrichtentypen hinzufügen. Geben Sie den Typ über `setType()` an.

```php theme={null}
use LINE\Clients\MessagingApi\Model\LocationMessage;
use LINE\Constants\MessageType;
use Revolution\Line\Notifications\LineMessage;

public function toLine(object $notifiable): LineMessage
{
    $location = (new LocationMessage())
        ->setType(MessageType::LOCATION)
        ->setTitle('title')
        ->setAddress('address')
        ->setLatitude(0.0)
        ->setLongitude(0.0);

    return LineMessage::create()
                      ->message($location);
}
```

<Info>
  Die aktuellsten Informationen finden Sie im [GitHub-Repository](https://github.com/invokable/laravel-line-sdk).
</Info>


## Related topics

- [LINE SDK für Laravel](/de/packages/laravel-line-sdk/index.md)
- [Socialite (LINE Login) - LINE SDK für Laravel](/de/packages/laravel-line-sdk/socialite.md)
- [Webhook / Bot - LINE SDK für Laravel](/de/packages/laravel-line-sdk/bot.md)
- [Laravel Notification für Discord (Webhook)](/de/packages/laravel-notification-discord-webhook.md)
- [Notification-Kanal - Laravel Bluesky](/de/packages/laravel-bluesky/notification.md)
