API Dokumentace

Někdy se hodí přidávat otázky pomocí skriptů, zejména při hromadném nahrávání nebo automatizaci.

Endpoint pro přidání otázky

POST /api/sets/{setId}/questions

Přidá novou otázku do sady s ID {setId}

Parametry požadavku

Číselné otázky

content: Text otázky
questionType: "number"
correctAnswer: Správná odpověď (číslo)

Výběrové otázky

content: Text otázky
questionType: "pick"
correctAnswer: Správná odpověď
wrongAnswers[0]: Špatná možnost 1

Příklad v Pythonu

  1. 1
    Přihlaste se do aplikace a zkopírujte cookies z prohlížeče do souboru cookies.txt
  2. 2
    Nainstalujte potřebné knihovny: pip install requests requests-toolbelt
  3. 3
    Zkopírujte z URL identifikátor sady, do které chcete přidat otázky (/dashboard/sets/{setId})
  4. 4
    Upravte skript s vašimi údaji a spusťte ho

Jak najít cookies v prohlížeči:

  1. 1. Otevřete DevTools (F12 nebo Ctrl+Shift+I)
  2. 2. Přejděte na záložku Network
  3. 3. V Network tabu klikněte na nějaký request
  4. 4. V pravém panelu najděte "Request Headers"
  5. 5. Zkopírujte celý Cookie
Příklad cookies v Network tabu
1import requests
2from requests_toolbelt.multipart.encoder import MultipartEncoder
3
4# Cookies pro autentizaci (musíte být přihlášeni)
5with open('cookies.txt', 'r') as f:
6    raw_cookie = f.read().strip()
7cookies = dict(item.split("=", 1) for item in raw_cookie.split("; "))
8# ID sady, do které chcete přidat otázku
9set_id = 13
10# URL endpointu
11url = f"https://be.vyzyvatel.com/api/sets/{set_id}/questions"
12# Přidání číselné otázky
13number_question = MultipartEncoder(
14    fields={
15        "content": "Ve kterém roce vznikla Česká republika?",
16        "questionType": "number",
17        "correctAnswer": "1993"
18    }
19)
20response = requests.post(
21    url, 
22    data=number_question, 
23    cookies=cookies, 
24    headers={"Content-Type": number_question.content_type}
25)
26print(f"Status: {response.status_code}")

Důležité poznámky

  • Musíte být přihlášeni a mít práva pro úpravu sady
  • Cookies budou fungovat dokud se neodlhásíte na webu (refreshToken bude validní)
  • Pro hromadné nahrávání doporučujeme přidat delay mezi požadavky
  • Endpoint očekává multipart/form-data formát