Я пытаюсь удалить пользователя из Okta с помощью вызова API. Чтобы удалить пользователя из Okta, вам нужно дважды выполнить один и тот же запрос DELETE. Первый отключает учетную запись, а второй удаляет ее.
У меня есть две функции: одна для получения идентификатора пользователя с использованием адреса электронной почты, а затем функция для удаления пользователя с использованием идентификатора. .
Если я зайду в Postman и дважды запущу вызов API, это просто сработает. Первый отключает учетную запись, а второй удаляет ее.
Я пытаюсь сделать это на Python следующим образом:
Код: Выделить всё
okta_user = okta.user_search(login)
okta_id = okta_user[0]["id"]
for _ in range(2):
okta.user_delete(okta_id)
Код: Выделить всё
DEBUG: https://fakeoktaaddress.com:443 "DELETE //api/v1/users/00u7ngjk6u2fkJR7o1d7 HTTP/1.1" 204 0
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./offboard.py", line 51, in
okta.user_delete(okta_id)
File "/calls/calls.py", line 151, in user_delete
logging.info(response.json())
^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Моя теория заключается в том, что каким-то образом при втором запуске Python снова пытается получить значение для okta_id, повторно запустив одну или обе эти функции:
Код: Выделить всё
okta_user = okta.user_search(login)
okta_id = okta_user[0]["id"]
Спасибо!
Попробовал кортеж вместо обычной переменной. Также попробовал глобальную переменную вместо многократно используемой.
Подробнее здесь: https://stackoverflow.com/questions/759 ... ng-deleted