# Schnellstart

In fünf Minuten zur ersten Nachricht auf dem Handy.

Am Ende dieser Seite hat dein Handy eine Push-Nachricht bekommen, die du selbst geschickt hast. Du brauchst die Samy-App und ein Terminal.

## 1. Packlet anlegen

Ein **Packlet** ist die Verbindung zwischen einem deiner Tools und Samy. Leg in der App eins an:

1. Tippe oben links auf das Plus: **Packlet verbinden**.
2. Wähle **Mir Bescheid geben** und tippe auf **Weiter**.
3. Gib einen Namen ein, zum Beispiel „Test“, und such dir einen Avatar aus.
4. Tippe auf **Packlet anlegen**.

Das Feld für die Webhook-URL bleibt leer. Die brauchst du erst, wenn dein Tool auf Knöpfe reagieren soll.

## 2. Schlüssel ablegen

Samy zeigt jetzt den **Schlüssel** deines Packlets. Er beginnt mit `samy_` und ist das Passwort, mit dem dein Tool Nachrichten schicken darf.

> **Achtung:** Den Schlüssel siehst du nur dieses eine Mal. Kopier ihn jetzt. Geht er verloren, erzeugst du in den Einstellungen des Packlets einen neuen.

Leg ihn im Terminal als Umgebungsvariable ab. So steht er nicht im Code:

```bash
export SAMY_KEY="samy_…"
```

## 3. Erste Nachricht schicken

Die App wartet jetzt auf die erste Nachricht. Schick sie:

```bash
curl https://api.packlets.app/v1/push \
  -H "Authorization: Bearer $SAMY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Hallo","text":"Mein Tool ist verbunden"}'
```

```python
import os, requests

requests.post("https://api.packlets.app/v1/push", timeout=10,
              headers={"Authorization": f"Bearer {os.environ['SAMY_KEY']}"},
              json={"title": "Hallo", "text": "Mein Tool ist verbunden"}).raise_for_status()
```

```typescript
const res = await fetch("https://api.packlets.app/v1/push", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SAMY_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ title: "Hallo", text: "Mein Tool ist verbunden" }),
});
if (!res.ok) throw new Error(`Samy ${res.status}: ${await res.text()}`);
```

Als Antwort kommt die Kennung der Nachricht:

```json
{ "message_id": "5b0c1a52-7c1e-4a43-9d0b-2f6f0c7d1e11" }
```

## 4. Fertig

Die App zeigt **Verbunden!**, und die Nachricht steht in deinem neuen Kanal. Ist die App im Hintergrund, kommt sie als Push.

Dieselben drei Zeilen kannst du jetzt in jedes Skript einbauen: ans Ende eines Backups, in einen Cronjob, in einen Fehler-Handler.

## Wenn es nicht klappt

| Was du siehst | Ursache |
|---|---|
| `401` mit `invalid_key` | Der Schlüssel stimmt nicht. Prüf mit `echo $SAMY_KEY`, ob er vollständig ist. |
| `400` mit `invalid_body` | Im JSON fehlt `text`, oder es ist leer. |
| `200`, aber kein Push | Die Nachricht ist da, nur der Push fehlt: Öffne den Kanal und prüf, ob Mitteilungen für Samy erlaubt sind. |

Mehr dazu unter [Fehlersuche](https://packlets.app/docs/fehlersuche.md).

## Wie es weitergeht

- Verstehen, was du gerade gebaut hast: [So funktioniert Samy](https://packlets.app/docs/konzepte.md).
- Mehr aus der Nachricht machen: [Nachricht senden](https://packlets.app/docs/senden.md) und [Knöpfe](https://packlets.app/docs/knoepfe.md).
- Den Aufruf von einer KI einbauen lassen: [Mit KI bauen](https://packlets.app/docs/ki.md).
- Fertige Funktionen für Python und TypeScript: [Fertiger Code](https://packlets.app/docs/beispiele.md).
