VBA Basic Access Authentication. Fazendo autenticações HTTP com VBA e MS XML

Ao desenvolver um projeto tive a necessidade de extrair dados de um sistema web (SAAS – Software As a Service) para processar em uma planilha MS Excel.

O SAAS em questão era o NEXUDUS e sua documentação se encontra neste link. É um software para administrar escritórios compartilhados.

Para realizar autenticação em sua API (Application Programming Interface) houve a necessidade de realizar a autenticação HTTP básica (Basic Access Authentication) conforme explicado neste link.

Abaixo deixo um exemplo de código VBA que faz esta autenticação:

Pré-requisitos:

Public Function testeAutenticacao() As String
 'Testa a autenticação no serviço do nexudus
 Const usr As String = "seu usuário"
 Const pws As String = "sua senha"
 
 Dim x As String
 
 x = EncodeBase64(StrConv(usr & ":" & pws, vbFromUnicode))
 'Debug.Print x
 
 
 Dim xmlhttp As New MSXML2.ServerXMLHTTP
 Dim dom As New DOMDocument60
 Dim data As String
 Dim url As String
 
 'abaixo, comentado como meu usuário e senha ficam após serem codificados para base 64
 'data = "Basic VasdtTry2NTpasat4wNQ=="
 
 url = "https://spaces.nexudus.com/api/billing/coworkerinvoices"
 data = "Basic " & x
 
 xmlhttp.Open "GET", url, False
 
 'xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
 'xmlhttp.setRequestHeader "Content-Length", Len(data)
 xmlhttp.setRequestHeader "Authorization", data
 xmlhttp.send
 
 'Debug.Print xmlhttp.responseText
 
 testeAutenticacao = xmlhttp.responseText
End Function

Veja também:

Converter texto na base 64 com VBA –> esse será necessário para este código funcionar !!!

VBA e JSON

Desenvolvendo VBA e XML

Anúncios
Esta entrada foi publicada em Visual Basic 6.0 e VBA com as etiquetas , , , , . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

w

Connecting to %s