VBA API REST - возвращает статус 500 - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь подключиться к API из веб-инструмента. Читая их документацию, я выяснил, как отправлять запросы через VBA (Excel - код ниже).

  • Инструмент дает мне username (он же токен), password и authString(он же Base64-кодированный токен)
  • Запуск кода с комментариями к строке .SetRequestHeader "Authorization", "Basic " & token64 возвращает Status 401 - Unauthorized.
  • Запуск кода со строкой .SetRequestHeader "Authorization", "Basic " & token64 возвращает Status 500 - Internal server Error
  • Обращаясь в службу поддержки, мне говорят, что для получения ответа мне нужно позвонить в службу, например:

{"service": "company.list"}

Моя основная цель - использовать интеграцию VBA для передачи некоторой информации через API в инструмент, например, «Проекты», «Клиенты» и т. Д.

Что я делаюнеправильно? Не могли бы вы, ребята, помочь мне в достижении моей цели, посылая мне советы / документацию для чтения? Стоит ли использовать другой язык, кроме VBA (python, C #)?

Документация по API веб-сайта: https://beebole.com/timesheet-api/

Код

Option Explicit

Public Sub RESTtest()

    Dim URL As String
    Dim username As String
    Dim password As String
    Dim authString As String
    Dim aSync As String
    Dim token64 As String
    Dim project As String


        username = "username"
        password = "x"
        authString = username & ":" & password

        token64 = "usernameEncoded64"
        URL = "https://beebole-apps.com/api/v2"
        aSync = False


    Dim restRequest As WinHttp.WinHttpRequest
    Dim restResult As String

        Set restRequest = New WinHttp.WinHttpRequest

  With restRequest
    .Open "POST", URL, aSync
    .SetRequestHeader "Content-type", "application/json"
    .SetRequestHeader "service", "company.list"
    .SetRequestHeader "Authorization", "Basic " & token64
    .Send
    .waitForResponse

    Debug.Print ".ResponseText: " & .ResponseText
    Debug.Print ".Status: " & .Status
    Debug.Print ".StatusText: " & .StatusText
    Debug.Print ".ResponseBody: " & .ResponseBody

  End With

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