wordpress xmlrpc and microsoft access vba

I was building a database in WordPress but their table interface lacks completely and I dont want to spend 200 hours developing a backend for a once-off project.

I always used MsAccess for RAD blueprinting and I reckon you can build a better more flexible interface in 20 hours. With XHR MsAccess has some better internet capabilities these days, a nice simple XMLHttp library.

You can use it for any http rest api in the cloud.

Ajax for Access :) here’s the most basic wordpress xml-rpc call, sayHello.

  1. Sub PutXML()
  2.  
  3. txtURL = "http://www.blog.com/xmlrpc.php"
  4. txtUserName = "user"
  5. txtPassword = "pwd"
  6.  
  7.   Dim objSvrHTTP As ServerXMLHTTP
  8.   Dim strT As String
  9.   Set objSvrHTTP = New ServerXMLHTTP
  10.  
  11.   objSvrHTTP.Open "POST", txtURL, False, CStr(txtUserName), _
  12.    CStr(txtPassword)
  13.  
  14.   objSvrHTTP.setRequestHeader "Accept", "application/xml"
  15.   objSvrHTTP.setRequestHeader "Content-Type", "application/xml"
  16.  
  17.   strT = ""
  18.   strT = strT & "<methodcall>"
  19.   strT = strT & "<methodname>demo.sayHello</methodname>"
  20.   strT = strT & "</methodcall>"
  21.  
  22.   objSvrHTTP.send strT
  23.  
  24.   MsgBox objSvrHTTP.responseText
  25.  
  26. End Sub

For pre-Vista you need the MSXML 6.0 library from microsoft, in Vista I already had it installed so you can add a reference to the library and off you go.

Posted in juust, xml-rpc and tagged .

11 Comments

  1. Yeah, I know. He uses PHP, afaik, but since he moved the blog I haven’t seen what he’s been doing, I keep getting blank pages :)

    • I wouldn’t trust 5ubliminal’s coding too much.
      Try adding a comment on his website using Firefox and you’ll see what I mean!

  2. Juust, very informative site, thank dude!

    I have a question regarding your postings on xmlrpc via vba:

    I used your code from this post and from http://www.juust.org/index.php/more-vba-and-wordpress-xml-rpc/2009/10/ as the basis of a vba function to make posts to my wordpress blog from MS Office applications (using blogger_newpost), however I keep getting errors back from wp xlmrpc.

    faultCode
    -32700

    faultString
    parse error. not well formed

    I assume the error relates to the formatting of my xml params structure.
    Would you be able to do a post on a generic function to make a post from any office app to a wordpress blog.

    Thanks

    Ael

  3. Doesn’t seem to work for me putting it in Excel.

    All examples I’ve tried on this blog yield back “server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall”, or after hours and hours of debugging on some other examples here it yields back the simple “not conforming to spec” error.

    And I’m getting really tired of seeing those two error messages and going blind trying to find just what isn’t conforming to spec in WordPress. :(

    • Hey I was having the same problem, just spent an hour on it as well.

      Turns out capital letters are important:

      strT = “”
      strT = strT & “”
      strT = strT & “demo.sayHello”
      strT = strT & “”

      • Okay I think it took my html literally.

        methodcall should be methodCall
        methodname should be methodName

        • Thanks, Tin!

          I did figure it out, probably about the same time you did. :) Finally worked out when it said request must be a methodCall, that the capital C was important, and added the captial N in name from that automatically. ;)

          XML-RPC is definitely case-sensistive in the parameters per the standard. (And is also so in WordPress’ implementation.)

          Thanks!

          (I’m now working on getting wp.newPost and wp.editPost methods working. But I’m utterly confident I’ll get there.)

          And thank you, juust, for the examples! You’re one of the very few sources I found with actual code for actual XMLRPC and rolling it in VBA.

  4. Hey Tin, Darren, sorry for not responding, I was off to see a friend for a few days. I noticed Tin figured that one out, thanks !

Leave a Reply

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