Okta api python sdk выдает ошибку json

Я пытаюсь создать пользователя с помощью python sdk. Когда я запускаю свой скрипт, я получаю следующую ошибку:

File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/sitepackages/oktasdk-python/okta/framework/ApiClient.py", line 53, in post
if self.__check_response(resp, attempts):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/sitepackages/oktasdk-python/okta/framework/ApiClient.py", line 88, in  __check_response
raise OktaError(json.loads(resp.text))
okta.framework.OktaError.OktaError: The request body was not well-formed:  Could not read JSON

Вот фрагмент моего кода:

from okta.UsersClient import UsersClient
from collections import namedtuple

def main():

    create_okta_user()


def create_okta_user():

    usersClient = UsersClient("https://example.okta.com", "0d0d0dexamplekey")
    User = namedtuple("User", ["login", "email", "firstName", "lastName"], verbose=False, rename=False)
    user = User(login="[email protected]",
            email="[email protected]",
            firstName="user",
            lastName="tester")

    usersClient.create_user(user, activate=False)

    #usersClient.activate_user(user)

main()

person John Yossarian    schedule 09.06.2015    source источник
comment
Не могли бы вы включить тело JSON, чтобы было понятно, в чем проблема в строках 53 и 88? Это может помочь решить проблему.   -  person Benjamin Wesson    schedule 10.06.2015
comment
Как вытащить тело json из звонка в sdk?   -  person John Yossarian    schedule 10.06.2015


Ответы (1)


Похоже, вы пытаетесь использовать namedtuple, который сериализуется в список json, а не в объект.

Попробуйте использовать модель User следующим образом:

from okta import UsersClient
from okta.models.user import User


def main():
    create_okta_user()

def create_okta_user():

    usersClient = UsersClient("https://example.okta.com", "0d0d0dexamplekey")

    user = User(login="[email protected]",
            email="[email protected]",
            firstName="user",
            lastName="tester")

    user = usersClient.create_user(user, activate=False)
    #usersClient.activate_user(user)

main()

http://developer.okta.com/docs/sdk/core/python_api_sdk/quickstart.html#create-a-user

person kevlened    schedule 10.06.2015
comment
Спасибо! Похоже, что бит отсутствовал в документации. Я сейчас занимаюсь делом. Я также предполагаю, что есть способ добавить нового пользователя в группы с помощью sdk? - person John Yossarian; 11.06.2015