Я пытаюсь подключиться к 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