ответ 405 при попытке загрузить расписания в Xero с помощью PyXero - PullRequest
0 голосов
/ 24 сентября 2018

library = pyxero 0.9.1

Привет,

Я пытаюсь автоматизировать загрузку расписаний в Xero с помощью Python, но столкнулся с камнем преткновения.У меня нет проблем с извлечением информации с использованием API, но когда я пытаюсь отправить новое расписание, я получаю код ответа 405.Я попытался упростить свои данные JSON до минимума, который позволяет Xero, но ошибка все еще сохраняется.Пример кода ниже

from xero import Xero
import configs
import datetime
from xero.auth import PrivateCredentials
credentials = PrivateCredentials(configss.key, configss.RSAstr)
xero = Xero(credentials)

employees = xero.payrollAPI.employees.all()

timesheets = {'timesheets': {'timesheet': {'EmployeeID': employees[0]["EmployeeID"],
              'StartDate': datetime.datetime(2018,8,15),
              'EndDate': datetime.datetime(2018,8,21),
              'Status': 'Draft'}}}

xero.payrollAPI.timesheets.put(timesheets)

Обратите внимание, что я могу без проблем публиковать новые контакты и счета.Просматривая историю вызовов API с сайта app.xero.com, я вижу сообщение с

Запросом сообщения =

    <Timesheets><Timesheet><EmployeeID>38fcaf73-e35c-4f38-9ebe-642ef6d5b7c7</EmployeeID> 
<StartDate>2018-09-15</StartDate><EndDate>2018-09-21</EndDate> 
<Status>DRAFT</Status></Timesheet></Timesheets>

Ответ 405 - Метод не разрешен

1 Ответ

0 голосов
/ 24 сентября 2018

В вашем описании написано POST, но в вашем коде написано 'put' - документы - https://developer.xero.com/documentation/payroll-api/timesheets - предполагают, что используется метод POST.

Если вы переключите свой код на "post", имеет ли он желаемый эффект?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...