BeeBole принимает запросы HTTP POST в формате json-doc на следующий URL: https://beebole -apps.com / api / v2
Формат документа JSON - это та часть, которую вы пропустили;вам нужно передать информацию в виде тела запроса в кодировке JSON.Используемый вами аргумент params
устанавливает только строку запроса URL (часть ?...
в URL).
Использование
import requests
payload = {
"service": "absence.get",
"id": "absence_id"
}
auth = ("API_token", "x")
url = "https://beebole-apps.com/api/v2"
req = requests.get(url, json=payload, auth=auth).json()
Часть json=
гарантирует, что payload
словарь кодируется в JSON и отправляется как тело POST.Это также устанавливает заголовок Content-Type
запроса.
Я также обновил API-аутентификацию , все, что здесь нужно для ключевого слова auth
, это кортеж имени пользователя и пароля,См. Basic Authentication раздел .
. Вы можете подождать с вызовом .json()
в ответе;сначала проверьте, был ли ответ успешным:
req = requests.get(url, json=payload, auth=auth)
if not req.ok:
print('Request not OK, status:', req.status_code, req.reason)
if req.content:
print(req.text)
else:
data = req.json()
if data['status'] == 'error':
print('Request error:', data['message'])
При этом используются документированные ответы об ошибках .