vb.netからxmlrpcを使ってWordPressに記事を投稿する

概要

WordPressの xmlrpc.php を使ってvb.netから記事を投稿します。

環境

  • Windows 10 (64bit版)
  • Microsoft Visual Studio Community 2017

xml-rpc用のライブラリを取得

xml-rpc.netにアクセスして、 xml-rpc.net.2.5.0.zip を任意のフォルダにダウンロードして展開しておきます。

http://xml-rpc.net/download.html

image

Visual Studioにて、vb.net – コンソールアプリを作成し、参照を追加

image

さらに参照を押下し、展開したフォルダ内にある xmlRpcV2.dll を参照設定し、チェックを付けておく。

image

vb.netからWordPressに投稿するサンプルプログラム

Module1.vb に以下のコードを貼り付ける。

Imports CookComputing.XmlRpc

Public Interface WeblogRpcCategory
    <CookComputing.XmlRpc.XmlRpcMethod("metaWeblog.newPost")>
    Function NewPage(ByVal id As Integer,
                     ByVal user As String,
                     ByVal pass As String,
                     ByVal content As strContents,
                     ByVal publish As Integer) As String
End Interface

Public Structure strContents
    Public title As String
    Public description As String
End Structure


Module Module1

    Class WpXmlRpc

        Public id = 1
        Public user As String = ""
        Public pass As String = ""
        Public xmlrpcURL As String = ""

        Public Function newPost(ByVal title As String,
                                ByVal post As String,
                                ByVal publish As Integer) As String

            Dim categories As WeblogRpcCategory = CType(XmlRpcProxyGen.Create(GetType(WeblogRpcCategory)), WeblogRpcCategory)
            Dim RPCServer As XmlRpcClientProtocol = CType(categories, XmlRpcClientProtocol)
            Dim ContentsArray As strContents = Nothing
            Dim result As String = ""

            RPCServer.Url = xmlrpcURL

            ContentsArray.title = title
            ContentsArray.description = post

            Try
                Return categories.NewPage(1, user, pass, ContentsArray, publish).ToString
            Catch ex As Exception
                Return ex.Message
            End Try
        End Function
    End Class


    Sub Main()
        'Dim wp As New clsXmlRpc

        With New WpXmlRpc

            .id = 1
            .user = "ここにユーザー名を記述"
            .pass = "ここにパスワードを記述"
            .xmlrpcURL = "https://localhost.net/xmlrpc.php"

            .newPost("今日は多治見より1度も涼しかったです",
                     "それでも39度もあるわけですが・・・" & vbCrLf & "><。", 1)
        End With

    End Sub
End Module

コメント

タイトルとURLをコピーしました