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

# Kling Motion Generation API Integracja Opis

> Kling video generation 集成指南 - XHuoAPI

W tym artykule przedstawimy opis integracji Kling Motion Generation API, które pozwala na generowanie oficjalnych filmów Kling poprzez wprowadzenie niestandardowych parametrów.

## Proces aplikacji

Aby korzystać z API, należy najpierw przejść do strony [Kling Motion Generation API](https://api.xhuoapi.ai/documents/d3f2c369-102d-4856-9565-702ac5f2df63) i złożyć wniosek o odpowiednią usługę. Po wejściu na stronę, kliknij przycisk „Acquire”, jak pokazano na obrazku:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować. Po zalogowaniu lub rejestracji, automatycznie wrócisz na bieżącą stronę.

Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z tego API.

## Podstawowe użycie

Najpierw zapoznaj się z podstawowym sposobem użycia, czyli wprowadzeniem słowa kluczowego `prompt`, adresu obrazu `image_url` oraz linku do wideo `video_url`, aby uzyskać przetworzony wynik. Następnie musimy również wprowadzić model `mode`, który obecnie głównie obejmuje modele `std` i `pro`, szczegóły są następujące:

<p>
  <img src="https://cdn.xhuoapi.ai/5qlpjt.png" width="500" className="m-auto" />
</p>

Możemy zobaczyć, że ustawiliśmy nagłówki żądania, w tym:

* `accept`: jakiego formatu odpowiedzi oczekujesz, tutaj wpisujemy `application/json`, czyli format JSON.
* `authorization`: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.

Dodatkowo ustawiono ciało żądania, w tym:

* `image_url`: obraz referencyjny, postacie, tło i inne elementy w generowanym wideo są oparte na tym obrazie.
* `video_url`: link do pobrania referencyjnego wideo. Ruchy postaci w generowanym wideo będą zgodne z referencyjnym wideo.
* `mode`: tryb generowania wideo, głównie standardowy tryb `std` i tryb superszybki `pro`.
* `keep_original_sound`: możliwość wyboru, czy zachować oryginalny dźwięk wideo, wartości enum: yes, no.
* `character_orientation`: orientacja postaci w generowanym wideo, można wybrać zgodnie z obrazem lub wideo, wartości enum: image, video.
* `prompt`: słowo kluczowe.
* `callback_url`: URL, na który mają być zwracane wyniki.

Po dokonaniu wyboru, można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na obrazku:

<p>
  <img src="https://cdn.xhuoapi.ai/buwczd.png" width="500" className="m-auto" />
</p>

Kliknij przycisk „Try”, aby przeprowadzić test, jak pokazano na powyższym obrazku, otrzymujemy następujący wynik:

```json theme={null}
{
  "success": true,
  "video_id": "842578800134742051",
  "video_url": "https://v4-fdl.kechuangai.com/ksc2/yGPGHvUVDQEzDCs6tC0rYIbd_JwWNFaF8BEYAlw_xVcWX72xFuIUVqB_Hp5Sa7YEijI-yXqfKI92WW7bmyeCtpMjSOImlOFpQCmMUa-9iojt_ifXJnex_tvNkA0ZlJmuJLpeOfvX3j8d9oeeWgLeU3ftzBjQq1g9OC9FU92OfjRQLUTSzfWRzkhzirV32BT-BwfxgqJKsUD-WHxjqCJmOw.mp4?cacheKey=ChtzZWN1cml0eS5rbGluZy5tZXRhX2VuY3J5cHQSsAHtyCrKxB23NXn5ddMedV5Mw4pp_kOk_TRbCVA-wO9LJZuga8_KxXCzhw6bU3hS1V5PpNoSTxSkm_E80i5U1PkJ5d444cjPvoIq2VboPqCip2QbsoiVMu6CuGP7tB7fStLbezBNA4lQtHeSVPxWTE7Hy0wbJ33tKlf-X_-1ad3u0cyHfT_8EroD4iYZ1ZVasuYxAKjcdmbbVZ7NlDK9rqyI5euyz-70-M-QM5Lk6l88SRoSS2Y9drB8Z4ednHxTIh7XZcnaIiB5Xf4Mv8Rc51nUyIC5lKp02LP7oViCg6OaAhR4ynNJkCgFMAE&x-kcdn-pid=112757&pkey=AAX8ukavvkZsIz-IUg2pTvMOAV7LVItIdg_5TUYhGA1YINT8x-SR7rXY7BWLKqspLTYIjK7C0SjbXtX25Lm4_sx2V229AIyfVzjrlQQ7IjPsxvAv9cTG72YN0TPSjVowBZQ",
  "duration": "5.066",
  "state": "succeed",
  "task_id": "363c7a84-e880-472e-a4d4-098e50cfc292"
}
```

Zwrócony wynik zawiera wiele pól, które są opisane poniżej:

* `success`, status zadania generowania wideo.
* `task_id`, ID zadania generowania wideo.
* `video_id`, ID wideo generowanego przez zadanie.
* `video_url`, link do wideo generowanego przez zadanie.
* `duration`, długość wideo generowanego przez zadanie.
* `state`, status zadania generowania wideo.

Możemy zobaczyć, że otrzymaliśmy satysfakcjonujące informacje o wideo, wystarczy, że na podstawie adresu linku wideo w `data` uzyskamy wygenerowane wideo Kling.

Dodatkowo, jeśli chcesz wygenerować odpowiedni kod do integracji, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/kling/motion' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "image_url": "https://sourceyoya.wenge.com/2025/06/03/683e9f76e4b0684509ab1aca.jpg",
  "video_url": "https://cdn.xhuoapi.ai/odwfm5.mp4",
  "prompt": "让画面生动起来",
  "mode": "std",
  "character_orientation": "image"
}'
```

## Asynchroniczne wywołanie zwrotne

Ponieważ czas generowania Kling Motion Generation API jest stosunkowo długi, wynosi około 1-2 minut, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych. Dlatego to API oferuje również wsparcie dla asynchronicznych wywołań zwrotnych.

Cały proces polega na tym, że klient podczas wysyłania żądania dodatkowo określa pole `callback_url`. Po wysłaniu żądania API natychmiast zwraca wynik, zawierający pole `task_id`, które reprezentuje aktualne ID zadania. Po zakończeniu zadania, wynik generowania wideo zostanie wysłany do określonego przez klienta `callback_url` w formie POST JSON, który również zawiera pole `task_id`, dzięki czemu wyniki zadania można powiązać za pomocą ID.

Poniżej przedstawiamy przykład, aby zrozumieć, jak to działa.

Najpierw, Webhook callback to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego własnego serwera HTTP. W tym celu, dla wygody demonstracji, użyjemy publicznej strony przykładowej Webhook [https://webhook.site/](https://webhook.site/), otwierając tę stronę, otrzymasz URL Webhook, jak pokazano na obrazku:

![](https://cdn.xhuoapi.ai/tbcnai.png)
Skopiuj ten URL, aby móc go używać jako Webhook, przykładowy URL to `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`.

Następnie możemy ustawić pole `callback_url` na powyższy URL Webhook, a także wypełnić odpowiednie parametry, szczegóły jak na obrazku:

<p>
  <img src="https://cdn.xhuoapi.ai/vdx12s.png" width="500" className="m-auto" />
</p>

Klikając uruchom, można zauważyć, że natychmiast otrzymamy wynik, jak poniżej:

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Po chwili możemy na `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3` zaobserwować wynik generowania wideo, jak na obrazku:

![](https://cdn.xhuoapi.ai/zv5u2q.png)

Treść jest następująca:

```json theme={null}
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Można zauważyć, że w wyniku znajduje się pole `task_id`, a pozostałe pola są podobne do powyższych, dzięki temu pole można zrealizować powiązanie z zadaniem.

## Obsługa błędów

Podczas wywoływania API, jeśli napotkasz błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:

* `400 token_mismatched`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `400 api_not_implemented`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `401 invalid_token`: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
* `429 too_many_requests`: Zbyt wiele żądań, przekroczono limit szybkości.
* `500 api_error`: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

### Przykład odpowiedzi błędu

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak używać API Kling Motion Generation do realizacji funkcji kontroli ruchu oficjalnego Klinga. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, skontaktuj się z naszym zespołem wsparcia technicznego.
