more vba and wordpress xml rpc

Basic Example II, vba wordpress remote control, demo.ayHello is fun but quite useless, so let’s proceed to wp.getUsersBlogs.

I make a table in access (id, isAdmin, blogid, url, blogName, xmlrpc) and then query wordpress, parse the xml response in store it in the database.

So here we go query WordPress :

  methodname = "wp.getUsersBlogs"  'xmlrpc url  txtURL = "http://www.blog.com/xmlrpc.php"  'authorization  txtUserName = "user"  txtPassword = "pass"  'XML http request    Dim objSvrHTTP As ServerXMLHTTP  Dim strT As String  Set objSvrHTTP = New ServerXMLHTTP  objSvrHTTP.Open "POST", txtURL, False, CStr(txtUserName), _  CStr(txtPassword)  objSvrHTTP.setRequestHeader "Accept", "application/xml"  objSvrHTTP.setRequestHeader "Content-Type", "application/xml"  'here is the bit with the wp.getUserBlogs methodname,   'and the username and password      strT = ""  strT = strT & ""  strT = strT & "" & methodname & ""  strT = strT & ""  strT = strT & "" & txtUserName & ""  strT = strT & "" & txtPassword & ""  strT = strT & ""  strT = strT & ""  objSvrHTTP.send strT  

that’s pretty straight forward.

I get an xml message back with the data stored in an array of STRUCT types.

  'Create the DomDocument Object  Dim oDoc As MSXML2.DOMDocument  Set oDoc = CreateObject("MSXML2.DOMDocument")  oDoc.async = False  oDoc.validateOnParse = False  'Load the response in the DomDocument Object  Dim fSuccess As Boolean  fSuccess = oDoc.loadXML(objSvrHTTP.responseText)  If Not fSuccess Then  MsgBox "failed"  Exit Function  End If  'counters  ct = 1  cs = 1  'array to story the field values  Dim SArray(1 To 5) As String  'open the table as recordset   Dim d As DAO.Recordset  Set d = CurrentDb.OpenRecordset("blogs", dbOpenTable)  'lets get the structs  Set oChildren = oDoc.selectNodes("//struct")  For Each oStruct In oChildren  'the struct has members,   Set Members = oStruct.childNodes  For Each Member In Members  'each member has a param pair (field, value)  'skip the first param, and store the field value  'in an array  Set Params = Member.childNodes  For Each Param In Params  ct = ct + 1  If ct / 2 <> Int(ct / 2) Then  SArray(ct / 2) = Param.Text  cs = cs + 1  End If  Next  Next  'we got the struct data,   'now add the array to the database  With d  .AddNew  !isAdmin = SArray(1)  !url = SArray(2)  !blogid = SArray(3)  !blogName = SArray(4)  !xmlrpc = SArray(5)  .Update  End With  Next  'close up shop  d.Close  Set d = Nothing  End Function  

The other worpdress api calls work quite the same.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top