Jag lärde mig från Amazon Web Services -arbetsbok att det är extremt enkelt att komma åt en REST -webbtjänst med VBA och importera data till en XML -lista.
En sak som saknades efter att ha sett Amazon -arbetsboken var hur man också skickar en inloggning och lösenord med en begäran om det behövs. Visar sig vara väldigt enkelt. För att skicka inloggning och lösenord, lägg bara till ytterligare ett kommando WinHttpRequest.SetCredentials (exempelkod nedan)
Jag har försökt förbättra min XML -kunskap på sistone (eller brist på sådana) genom att arbeta med ett inlärningsprojekt med hjälp av Bloglines Web Services, som tillåter HTTP -förfrågningar och returnerar XML (OPML, Olästa artiklar, etc.).
Inlärningskurvan jag stötte på var istället för att helt enkelt skjuta XML genom en karta till celler, jag ville använda MSXML2 (Excels XML -parser) för att få total kontroll över data för att fylla i Treeviews, Listboxes och andra UserForm -saker.
Projektmålet är att läsa mina blogglinjeprenumerationer i Excel (jag är 60% klar), ungefär som en Bloglines -version av Colos EZRSS, för att sedan överföra ansträngningen till OutLook när jag är klar (en annan inlärningskurva).
Här är exempelkod för att dra dina Bloglines -prenumerationer till Excel, den skickar ditt användarnamn och lösenord för autentisering:
'HttpRequest SetCredentials -flaggor. Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0 Private Sub ListSubs () Dim MyRequest As New WinHttpRequest MyRequest.Open "GET", _ "http://rpc.bloglines.com/listsubs" 'Set credentials MyRequest.SetCredentials "USERNAME", "PASS" HTTPREQUEST_SETCREDENTIALS_FOR_SERVER 'Skicka begäran. MyRequest.Send 'Och vi får det här svaret MsgBox MyRequest.ResponseText End Sub
Anmärkningar:
Ange en referens till Microsoft WinHTTP -tjänster
Ersätt ANVÄNDARNAMN och LÖSENORD med din Bloglines -information
Detta returnerar XML till en msgbox för demonstration, du kan importera den till en karta eller ladda den till ett MSXML2.DOMDocument (jag har arbetskod, jag experimenterar fortfarande, jag följer upp). Här är ett utdrag av msgboxen: