oAuth 1.0 - Obtenir un jeton de demande avec VBA

1

J'ai essayé VBA-Web pour l'authentification de l'API Upwork. Malheureusement, je ne connais rien de nouveau à oAuth et les exemples d'utilisation de l'authentification VBA-Web sont basés sur des classes conçues pour des API avec un flux d'authentification très différent.

Je suis bloqué à la toute première étape - obtenir un jeton de demande. D'après ce que j'ai remarqué, dans les exemples VBA-Web, il est traité comme une chaîne déjà connue:

Upwork API oAuth documentation

J'ai trouvé des fonctions qui me permettent de générer un timestamp et un nonce corrects. D'après la documentation oAuth 1.0, je comprends que les paramètres de ma demande doivent être triés par ordre alphabétique. Cependant, je ne sais pas comment construire une signature, en particulier cette authBasefonction de création de Base String ( variable dans mon code qui est pour le moment nulle) dans VBA-Web nécessite la spécification d'un jeton.

Voici mon code actuel, toute aide pour me guider dans la bonne direction est grandement appréciée:

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
Ryszard Jędraszyk
la source
J'espère que ce n'est pas votre clé API réelle et secret ... (Il est encore dans l'histoire, vous pouvez les désactiver et recréer)?
Attie
Bien sûr que non. J'ai changé de personnage tout en préservant la longueur.
Ryszard Jędraszyk
Pourquoi utilisez-vous oAuth 1.0 quand il a été arrêté?
Ramhound
Upwork API utilise oAuth 1.0, ai-je le choix?
Ryszard Jędraszyk