oAuth 1.0-使用 VBA 获取请求令牌

oAuth 1.0-使用 VBA 获取请求令牌

我试过VBA-网络用于 Upwork API 身份验证。不幸的是,我对 oAuth 还不熟悉,有关如何使用 VBA-Web 身份验证的示例是基于为具有完全不同身份验证流程的 API 设计的类。

我被困在第一步 - 获取请求令牌。据我所知,在 VBA-Web 示例中,它被视为已知字符串:

Upwork API oAuth 文档

我找到了允许我生成正确时间戳和随机数的函数。从 oAuth 1.0 文档中,我了解到请求中的参数必须按字母顺序排序。但是我不知道如何构造签名,尤其是authBaseVBA-Web 中的基本字符串(我的代码中的变量,现在为空字符串)创建函数需要指定令牌。

这是我当前的代码,非常感谢任何能引导我朝着正确方向发展的帮助:

Option Explicit

Public Sub APIauth()

   Const ApiKey As String = "XXXXXXXX"
   Const apiSecret As String = "XXXXXXXX"
   Const mySignatureMethod As String = "HMAC-SHA1"
   Const apiEntry = "https://www.upwork.com/api/"

   Dim myRequest As Object
   Dim urlName As String, requestString As String, authBase As String
   Dim mySignature As String, myTimestamp As String, myNonce As String

   Set myRequest = CreateObject("WinHttp.WinHttpRequest.5.1")

   urlName = apiEntry & "auth/v1/oauth/token/request"

   myNonce = CreateNonce
   myTimestamp = LocalToTimestamp(Now)

   authBase = ""
   mySignature = HMACSHA1(authBase, apiSecret, "Base64")

   requestString = "&oauth_consumer_key=" & ApiKey & _
                "&oauth_nonce=" & myNonce & _
                "&oauth_signature=" & mySignature & _
                "&oauth_signature_method=" & mySignatureMethod & _
                "&oauth_timestamp=" & myTimestamp '& _
                "&oauth_callback="
End Sub

相关内容