# Tworzenie zgłoszeń z innych systemów przez API Todomatora

> Uwierzytelnij się tokenem Todomatora i utwórz zgłoszenie jednym wywołaniem JSON, ze skryptu, e-maila lub formularza WWW, z folderami, osobami, tagami, załącznikami i callbackiem.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: pl
Content-SHA256: f9ff3963bc754aae9499f7e652cfe9e0d626caee73ac70224b210979217710e4
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Todomator udostępnia swoje akcje przez jeden endpoint API: `POST /api/` z treścią JSON `{ "schema": "<name>", "data": { ... } }` (trasy API Total.js; zobacz przepis [trasy API](/en/total5/api-routes/)). Adres `/api/` pochodzi z wiersza `$api` pliku `config`.

## Uwierzytelnianie tokenem

Poza sesją zalogowanej osoby API akceptuje **token**: wyślij go w nagłówku `x-token` lub w parametrze zapytania `token`. Jeśli jest równy ustawieniu `token` (zobacz [ustawienia](/en/todomator/settings-and-database/)), żądanie jest wykonywane jako wbudowany użytkownik o nazwie *Bot*, administrator z uprawnieniem `bot`; każdy inny token jest odrzucany. Użyj długiego losowego tokenu, trzymaj go na swoim serwerze i wysyłaj tylko przez HTTPS.

## Tworzenie zgłoszenia

Wywołanie nazywa się `tickets_create`. Wymagane jest tylko `name`; reszta jest opcjonalna:

| Pole | Uwagi |
|---|---|
| `name` | tytuł |
| `folder` lub `folderid` | folder, według **nazwy** (Todomator go wyszukuje) lub id; zgłoszenie przejmuje flagę rozliczalności folderu |
| `users` | osoby do przypisania, według **nazwy lub e-maila**; nieznana osoba to błąd (`User "..." not found`) |
| `watcherid` | osoby, które je śledzą, według **id** (w przeciwieństwie do `users` schemat tej wersji nie przyjmuje ich według nazwy) |
| `statusid` | `pending` (domyślnie), `open`, `review`, `postponed`, `note` lub `closed` |
| `markdown`, `html` | treść |
| `tags`, `ispriority`, `isbillable`, `ispublic` | tagi i flagi |
| `date`, `deadline`, `worked` | dzień, termin i już przepracowane minuty |
| `attachments` | lista `{ name, data }`, gdzie `data` to plik w Base64 |
| `reference`, `source`, `attrs` | dowolne pola do powiązania zgłoszenia z Twoim systemem |
| `callback` | adres, który otrzymuje zgłoszenie |

```json
{
	"schema": "tickets_create",
	"data": {
		"name": "The invoice page fails with a 500",
		"folder": "Customer support",
		"users": ["jane@example.com"],
		"markdown": "Reported by the contact form.\n\nSteps: open the invoice and click *Print*.",
		"tags": ["bug"],
		"source": "website",
		"reference": "form-2041"
	}
}
```

Odpowiedzią jest id nowego zgłoszenia. Przypisane osoby są powiadamiane, a otwarte sesje osób, które mogą je zobaczyć, są odświeżane.

## Callback

Gdy `callback` jest ustawiony, Todomator wysyła `POST` na ten adres z danymi zgłoszenia, gdy zgłoszenie jest tworzone, aktualizowane lub klonowane oraz gdy dodawany jest komentarz (przy tworzeniu i aktualizacji wysyła też listę podanych pól, `keys`). Twój system może go użyć do odzwierciedlania statusu zgłoszenia.

## Inne wywołania

Ten sam endpoint obsługuje pozostałe akcje, z nazwami z `controllers/api.js`: `tickets` (lista), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` i inne. Oficjalna dokumentacja API jest pod adresem [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
