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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.