首页 > 解决方案 > 需要请求令牌、授权和访问令牌的 VBA API GET

问题描述

我正在尝试从需要您请求令牌、授权应用程序、获取他们请求所需数据的访问令牌的站点获取数据。

这是提供的说明:

使用 API

  1. 从 support@example.com 获取 API 密钥和 API 机密(密码)。

  2. 进行 API 调用并获取请求令牌。GET https://live.example.com/api/v1/oauth/request_token 您的请求应具有以下标头: Authorization: OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", oauth_consumer_key="[app-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,以便您可以匹配用户并验证他/她是否已授权应用程序。

  4. 进行 API 调用以将您的请求令牌转换为访问令牌。GET https://live.example.com/api/v1/oauth/access_token 您的请求应具有以下标头: Authorization: OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", oauth_consumer_key="[app-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 调用以检索帐户中的所有项目。获取https://live。example.com/api/v1/items 您的请求应具有以下标头: Authorization: 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

标签: excelvbaapioauthcallback

解决方案


推荐阅读