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