У меня проблемы с API (Alsi, это документация: https://alsi.gie.eu/GIE_API_documentation_v003.pdf), которая предоставляет данные о природном газе. Это позволяет мне вставить URL в мой интернет-браузер, чтобы я мог видеть в формате Jsonданные, которые мне нужны. Однако, если я хочу скачать этот Json, я должен использовать «x-ключ», который они также дали мне с помощью команды cURL, как этот, который приведен в документации в качестве примера:
"https://agsi.gie.eu/api/data/eu?from=2017-06-01&till=2017-06-14" --header "x-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Поскольку мы хотим автоматизировать некоторые процессы, идея заключается в том, чтобы иметь документ Excel с поддержкой макросов, который бы легко извлекал эту информацию, чтобы ее можно было использовать в Excel. Благодаря другим открытым вопросам здесь, в StackOverflow, у меня есть следующееКод VBA, который, кажется, взаимодействует с API, однако возвращает «доступ запрещен», и я думаю, что это происходит из-за того, что пароль (или «x-ключ») был введен неправильно. Это все, что у меня есть (кроме JsonConverter и Base64Encode в других модулях):
Sub test()
Dim httpObject As Object
Set httpObject = CreateObject("MSXML2.XMLHTTP")
sUrl = "https://alsi.gie.eu/api/data/eu?from=2018-11-15&till=2018-12-04"
sAuth = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
sRequest = sUrl
httpObject.Open "GET", sRequest, True
httpObject.setRequestHeader "x-key", Base64Encode(sAuth)
httpObject.send
sGetResult = httpObject.responseText
MsgBox sGetResult
Dim oJSON As Object
Set oJSON = JsonConverter.ParseJson(sGetResult)
For Each sItem In oJSON
dItemDate = oJSON(sItem)("date")
sItemString = oJSON(sItem)("string")
vItemValue = oJSON(sItem)("value")
MsgBox "Item: " & sItem & " Date: " & dItemDate & " String: " & sItemString & " Value: " & vItemValue
Next
End Sub
Я попытался также применить Base64Encode к переменной пароля (sAuth) как вы можете видеть в случае, если это была проблема, также без нее, также без пароля / ключа вообще ... но я всегда получаю одно и то же сообщение «Отказано в доступе», поэтому я считаю, что парольпроблема.На данный момент я действительно не знаю, как добиться какого-либо прогресса, это самое близкое, что я получил к получению данных из этого API в Excel через VBA (я пробовал с большим количеством кусков кода здесь и на других сайтах / форумах ранее) иЯ чувствую, что я очень близок, просто еще нет.
Заранее большое спасибо.