• 0
IgorOtto

Visual Basic App

Question

Boa tarde,

 

Estou desenvolvendo uma aplicação em VBA para gerenciar meu produtos a venda no ML.

Porem me deparei com a aplicação do ML para obter o TOKEN de acesso a aplicação, já consigo operar em todas as funções do aplicativo ML, porem sempre tenho que obter o Token manualmente, pois os SDK's disponíveis não atendem ao VBA, e infelizmente não consigo desenvolver um para VBA referenciando os já existentes.

 

Alguém poderia me auxiliar a desenvolver um SDK para VBA, tenho conhecimento da ferramenta, porem não conheço nada do SDK ML...

 

Att.

Igor Otto

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Estou utilizando este código para iniciar o projeto:

 

Sub ObterToken()
Dim objHTTP As Object
    Dim result As String
    
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate "about:blank"
    objIE.Visible = True
    'URL = ""&redirect_uri=$http://localhost" 'APP_CALLBACK_URL
    
    Debug.Print URL
    
    objHTTP.Open "GET", URL, False
    objHTTP.setProxy 2, "192.168.0.9:3128" 'proxy
    objHTTP.setProxyCredentials "igor", "#####" 'proxy
    objHTTP.send
      
    result = objHTTP.responseText
    
    objIE.Document.Write result
    'Do Until .readyState = 4: DoEvents: Loop
    objIE.Quit
   
    'Debug.Print Result
    'Plan1.[access_token].Value = Result
   Set objHTTP = Nothing
   
End Sub

Share this post


Link to post
Share on other sites
  • 0

Não sei se entendi bem, mais o Token (um novo token) deve ser obtido quando o mesmo perde a validade, atualmente 4 horas. Eu controlo facilmente com data e hora da última validação. Assim, antes de atingir as 04 horas, meu ERP realiza um novo request para obter um novo.

 

Espero ter ajudado.

 

Boa sorte.

Share this post


Link to post
Share on other sites
  • 0
On 2/6/2017 at 1:38 PM, IgorOtto said:

Estou utilizando este código para iniciar o projeto:

 

Sub ObterToken()
Dim objHTTP As Object
    Dim result As String
    
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate "about:blank"
    objIE.Visible = True
    'URL = ""&redirect_uri=$http://localhost" 'APP_CALLBACK_URL
    
    Debug.Print URL
    
    objHTTP.Open "GET", URL, False
    objHTTP.setProxy 2, "192.168.0.9:3128" 'proxy
    objHTTP.setProxyCredentials "igor", "#####" 'proxy
    objHTTP.send
      
    result = objHTTP.responseText
    
    objIE.Document.Write result
    'Do Until .readyState = 4: DoEvents: Loop
    objIE.Quit
   
    'Debug.Print Result
    'Plan1.[access_token].Value = Result
   Set objHTTP = Nothing
   
End Sub

Veja só , isso parece legal , mas o conceito esta meio errado . A requisição deveria ser post

O código abaixo eu acho que esta certo , mas convém testar direito. Fazem mais de 10 anos que nao programo vba

 

Public sub GetMlToken
Dim xmlhttp as object
Dim seu_client_id as String 
Dim seu_secret as String
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
'Microsoft XML, v 4.0 (Windows XP).
'Microsoft XML, v 5.0 (Office 2003/2007).
'Microsoft XML, v 6.0 (Office 2010 ...
Dim xmlhttp As New MSXML2.XMLHTTP60 for Microsoft XML, v 6.0
xmlhttp.Open Method, URL, async(false)
Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String
myurl = "https://api.mercadolibre.com/oauth/token"
xmlhttp.Open "POST", myurl, False
xmlhttp.setRequestHeader "Content-Type", "text/json"
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "User-Agent", "Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405"
xmlhttp.Send "client_id="+seu_client_id+"&client_secret="+seu_secret+"&grant_type=client_credentials"
MsgBox(xmlhttp.responseText)
End Sub

 

 

Share this post


Link to post
Share on other sites
  • 0
On 2/8/2017 at 4:19 PM, IgorOtto said:

Não amigo, o problema é que não tem SDK para VBA, é necessário desenvolver um. Gostaria de colaboração para entendimento do código, em outras linguagens para reproduzir em VBA 

SDK é só um conjunto de classes prontas (e sinceramente não trazem grandes soluções pois sequer validações de tipo e tamanho de campos ela faz), se você é programador VBA, basta seguir a documentação, a API e implementação são bem simples

Share this post


Link to post
Share on other sites
  • 0
On 8/26/2018 at 2:15 AM, Ricardo José Barrera Arellano said:

Hi @IgorOtto. I'm about to finish writting a VBA SDK for that. And actualy I'm writing it in English so Portiguese people can also use it! Would you be interested in give it a try if I posted it on GitHub for instance? I did not know some body at some point looked for it!

Hi @Ricardo José Barrera Arellano if could share the link github for me, i could help in code. i relly need this... tks! 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now