oAuth 1.0 - obtendo o token de solicitação com o VBA

1

Eu tentei VBA-Web para autenticação de API do Upwork. Infelizmente, sou novo no oAuth e os exemplos sobre como usar a autenticação do VBA-Web são baseados em classes projetadas para APIs com fluxo de autenticação bastante diferente.

Estou preso no primeiro passo - obtendo o token de solicitação. Pelo que notei, em exemplos do VBA-Web, ele é tratado como uma string já conhecida:

Documentação UpAuth da API UpAuth

Eu encontrei funções que me permitem gerar timestamp e nonce corretos. Da documentação do oAuth 1.0 entendo que os parâmetros em minha solicitação devem ser classificados em ordem alfabética. No entanto, não tenho idéia de como criar assinaturas, especialmente que a função de criação Base String ( authBase em meu código, que por enquanto é string nula) no VBA-Web requer a especificação de token.

Aqui está o meu código atual, qualquer ajuda em me levar em uma boa direção é muito apreciada:

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
    
por Ryszard Jędraszyk 31.05.2018 / 14:10

0 respostas