VBA API GET, требующий токен запроса, авторизацию и токены доступа - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь получить данные с сайта, который требует от вас запросить токены, авторизовать приложение, получить токены доступа, сделать их запросить требуемые данные.

Ниже приведены инструкции:

Использование API

  1. Получить ключ API и секрет API (пароль) можно по адресу support@example.com.

  2. Сделайте вызов API и получитетокен запроса.GET https://live.example.com/api/v1/oauth/request_token Ваш запрос должен иметь следующий заголовок: Авторизация: OAuth oauth_version = "1.0", oauth_signature_method = "PLAINTEXT", oauth_consumer_key = "[ключ приложения]", oauth_signature = "[app-secret] &"Тело ответа будет следующей строкой в ​​кодировке URL: oauth_token = [request-token] & oauth_token_secret = [request-token-secret] Сохраните их для последующего использования.

  3. Попросите пользователя авторизовать ваше приложение.Направьте браузер пользователя на https://live.example.com/api/authorize.aspx?oauth_token=[request-token]&oauth_callback=[callback_url].. После завершения процесса авторизации EXAMPLE перенаправит пользователя на URL обратного вызова с строкой запроса, содержащей маркер запроса, чтобы вы могли сопоставить пользователя и убедиться, что он / она авторизовалapp.

  4. Выполните вызов API для преобразования вашего токена запроса в токен доступа.GET https://live.example.com/api/v1/oauth/access_token Ваш запрос должен иметь следующий заголовок: Авторизация: OAuth oauth_version = "1.0", oauth_signature_method = "PLAINTEXT", oauth_consumer_key = "[ключ приложения]", oauth_token = "[request-token]",oauth_signature = "[app-secret] & [request-token-secret]" Тело ответа будет следующей строкой в ​​кодировке URL: oauth_token = [access-token> & oauth_token_secret = [access-token-secret> Сохраните их для последующего использованияи вы будете готовы к работе.

  5. Выполните тестовый вызов API, чтобы получить все элементы из учетной записи.GET https://live. example.com/api/v1/items Ваш запрос должен иметь следующий заголовок: Авторизация: OAuth oauth_version = "1.0", oauth_signature_method = "PLAINTEXT", oauth_consumer_key = "[app-key]", oauth_token= "[access-token]", oauth_signature = "[app-secret] & [access-token-secret]"

Можно ли вообще выполнить все эти шаги в VBA?

Мне удалось использовать VBA для получения данных API от других веб-сайтов, которым не требуются эти дополнительные наборы токенов и авторизация.Я пробовал соединить много разных кодов, но я никуда не попал.

Было бы замечательно даже заставить работать только первый фрагмент головоломки (авторизация).Я поместил одну версию кода, которую я попробовал для этого ниже.

Dim strURL As String
strURL = "https://live.EXAMPLE.com/api/v1/oauth/request_token"

Dim hReq As New WinHttpRequest
hReq.Open "GET", strURL, False
hReq.SetRequestHeader "oauth_version", "1.0"
hReq.SetRequestHeader "oauth_signature_method", "PLAINTEXT"
hReq.SetRequestHeader "oauth_consumer_key", "[KEY-I have this]"
hReq.SetRequestHeader "oauth_signature", "[SECRET-I have this]"
hReq.Send

Dim strResp As String
strResp = hReq.ResponseText

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