Autoryzacja

Aby ułatwić korzystanie z API, zalecamy utworzenie kilku stałych parametrów, które będą często używane.

Python

OSAI_URL = 'https://app-eu.onestepai.com/api'  # or 'https://app-us.onestepai.com/api'
API_TOKEN = 'OUR ACCESS TOKEN GENERATED IN OSAI'
HEADERS = {'Authorization': None}

Aby korzystać z interfejsu API ONESTEP AI, wymagana jest autoryzacja użytkownika. Odbywa się to za pomocą tokena dostępu wygenerowanego na stronie OSAI w zakładce Ustawienia.

Utwórz unikalną nazwę tokena i wybierz datę jego wygaśnięcia.

Wygenerowany token jest wyświetlany tylko raz, więc upewnij się, że go skopiowałeś/aś, ponieważ nie będziesz mógł/mogła go zobaczyć ponownie po zamknięciu okna.

W przypadku utraty starego tokena lub wycieku danych, zawsze można usunąć istniejące tokeny i utworzyć wiele innych.

Python

def sign_in():
    response = requests.post(
        url=f'{OSAI_URL}/Users/SignIn', json=API_TOKEN)
    return response

Używając tokena, zaloguj się do API przez /Users/SignIn, otrzymany ciąg jest tokenem autoryzacji JWT, który powinien znajdować się w każdym żądaniu.

Python

token = sign_in()
global HEADERS
HEADERS = {'Authorization': f'Bearer {token.text}'}

Dla łatwiejszego użycia zalecamy przypisanie tokenu JWT do zmiennej globalnej.

Pobieranie informacji o użytkowniku

Aby sprawdzić poprawność kodu i połączenia API, zalecamy pobranie informacji o użytkowniku i sprawdzenie, czy otrzymywane dane są prawidłowe.

Python

def get_user_info():
    response = requests.get(url=f'{OSAI_URL}/Users', headers=HEADERS)
    return response.json()

Python

print('-------User info-------')
user_info = get_user_info()
print_formatted_json(user_info)

Przykład

Python

import requests
import json

OSAI_URL = 'https://app-eu.onestepai.com/api'
API_TOKEN = 'OUR ACCESS TOKEN GENERATED IN OSAI'
HEADERS = {'Authorization': None}


def main():
    token = sign_in()
    global HEADERS
    HEADERS = {'Authorization': f'Bearer {token.text}'}

    print('-------User info-------')
    user_info = get_user_info()
    print_formatted_json(user_info)


def sign_in():
    response = requests.post(
        url=f'{OSAI_URL}/Users/SignIn', json=API_TOKEN)
    return response


def get_user_info():
    response = requests.get(
        url=f'{OSAI_URL}/Users', headers=HEADERS)
    return response.json()


def print_formatted_json(text):
    print(json.dumps(text, indent=4))


if __name__ == '__main__':
    main()

Example output

-------User info-------
{
    "id":
    "Guid-Guid-Guid-Guid",
    "userName": "OneStep AI",
    "name": "OneStep",
    "surname": "AI",
    "email": "onestepai@email.com",
    "picture": "Link-To-Picture",
    "bucket": "s3",
    "colorMode": 1,
    "enableTutorial": false
}