Я пытаюсь использовать компоненты Delphi TREST для подключения к HRMC VAT API.
Я дошел до получения токенов доступа и обновления, но не могу продвинуться дальше.
На данный момент я пытаюсь восстановить свои обязательства следующим образом: -
RESTClient := TRestClient.Create('https://test-api.service.hmrc.gov.uk/organisations/vat/666596898/obligations');
try
RESTRequest := TRESTRequest.Create(RESTClient);
RESTResponse := TRESTResponse.Create(RESTClient);
OAuth2 := TOAuth2Authenticator.Create(RESTClient);
with OAuth2 do
begin
AccessToken := <my access token>;
ResponseType := TOAuth2ResponseType(rtCODE);
TokenType := TOAuth2TokenType(ttBEARER);
end;
with RESTClient do
begin
Authenticator := OAuth2;
ContentType := 'application/json';
end;
with RESTRequest do
begin
Client := RESTClient;
Response := RESTResponse;
Accept := 'application/vnd.hmrc.1.0+json';
Params.AddItem('from', '2017-01-25', pkGETorPOST);
Params.AddItem('to', '2017-01-25', pkGETorPOST);
Execute;
end;
finally
RESTClient.DisposeOf;
end;
Этот конкретный код возвращает ошибку INVALID_DATE_RANGE. Но в зависимости от того, какие даты я использую, я также иногда получаю CLIENT_OR_AGENT_NOT_AUTHORISED.
Может ли кто-нибудь пролить свет на то, где я ошибаюсь?





Возможно, ему не нравится, что даты начала и окончания совпадают? Он говорит о недопустимом диапазоне дат, а не о недопустимых датах.
Я, наконец, разобрался. Это была проблема с моими учетными данными тестового пользователя. Я сгенерировал их с веб-сайта HMRC, но из других сообщений я обнаружил, что существует проблема с их созданием таким образом. Когда я создал пользователя через API, он отлично работает!
Я надеюсь, что это помогает кому-то.
Спасибо за предложение, но, к сожалению, проблема не в этом. Я пробовал много разных дат и разных диапазонов. Если я не добавлю параметры, я получу INVALID_DATE_FROM / INVALID_DATE_TO, если это применимо. И это вызывает разные ошибки из-за недопустимых форматов даты. Таким образом, он, похоже, правильно распознает параметры даты, но затем возражает против диапазона.