Я пытаюсь сгенерировать токен доступа из API, используя следующую необходимую информацию:
Конечная точка авторизации: https://api.paylocity.com/IdentityServer/connect/token
Заголовок авторизации
Ожидается, что запрос будет выполнен в форме запроса базовой аутентификации с заголовком «Авторизация», содержащим идентификатор клиента и секрет клиента. Это означает, что стандартный пользователь в кодировке base-64: пароль с префиксом «Basic» в качестве значения для заголовка авторизации, где user - идентификатор клиента, а пароль - client-secret.
Заголовок типа контента
Заголовок «Content-Type» должен быть «application / x-www-form-urlencoded».
Другие значения
Запрос должен опубликовать следующие закодированные значения формы в теле запроса:
grant_type = client_credentials
scope = WebLinkAPI
Я безуспешно пытался использовать пакет «запросов» Python, см. Ниже:
import requests
url = "https://api.paylocity.com/IdentityServer/connect/token"
headers = {
'Authorization': "Basic **********:**********",
'Content-Type': "application/x-www-form/urlencoded"
}
body = {
'grant_type': "client_credentials",
'scope': 'WebLinkAPI'
}
response = requests.request("POST", url, headers=headers, params=body)
print(response.text)
Вместо токена доступа я получаю сообщение об ошибке:
{ "ошибка": "invalid_client"}
Я проверил, что мои имя пользователя и пароль в кодировке base64 верны, он выглядит примерно так: «G / RaNdOm: MoReRaNdOm ==», и когда я добавляю их в почтальон, он работает, поэтому мои учетные данные верны. Что может быть не так?