VB.NET –> WordPress

Come pubblicare contenuti su un portale in WordPress usando il protocollo XMLRPC

XML-RPC è un protocollo basato su XML per la chiamata di procedure remote (Remote Procedure Call)

WordPress supporta il protocollo XML-RPC  per la gestione dei contenuti attraverso le proprie XML-RPC WordPress API.

Nota: per verificare che il portale WordPress sia abilitato al protocollo XmlRpc visitare la pagina www.NOMESITO.it/xmlrpc.php.  Se la risposta è: XML-RPC server accepts POST requests only. allora è tutto ok.  Ricordarsi di abilitarlo dal menu Impostazioni/Scrittura/Pubblicazione remota).

Vediamo come pubblicare contenuti usando VB.NET.

Scarichiamo la libreria xml-rpc.net (in questo esempio uso la versione 2.5.0).  Nel file zip scaricato c’è la cartella “src”, che contiene un progetto in Visual Studio. Apriamo il progetto ed eseguiamo il build. Otteniamo così la dll: CookComputing.XmlRpcV2.dll

Di seguito, molto sinteticamente, le parti di codice necessarie alla “pubblicazione di un articolo in wordpress”. Il codice prevede la pubblicazione di un articolo, ma comprendendone il funzionamento sarà facile espanderne le possibilità per gestire tutti gli altri contenuti di un sito creato con wordpress.

Dichiarazione della DLL

Imports CookComputing.XmlRpc 

Definizione della struttura dati e della funzione

Public Structure blogInfo
Public title As String
Public description As String
Public categories() As String 'array di stringhe che contengono nomi categorie. L'articolo non viene pubblicato se la cat.non è presente
Public post_status As String 'post_status'    => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ] //Set the status of the new post.
End Structure

Public Interface IgetCatList
<CookComputing.XmlRpc.XmlRpcMethod("metaWeblog.newPost")> _
Function NewPost(ByVal blogId As Integer, ByVal strUserName As String, ByVal strPassword As String, ByVal content As blogInfo, ByVal publish As Boolean) As String
End Interface

Definizione della funzione che si occupa di popolare la struttura ed inviare i dati:


Public clientProtocol As XmlRpcClientProtocol
Public categories As IgetCatList
Shared Function newBlogPostSend(sUtente As String, sPassword As String, sUrl As String, sTitolo As String, sMessaggio As String, arrayCategorie() As String, sStatus As String) As String
Dim clientProtocol As XmlRpcClientProtocol
Dim categories As IgetCatList

'RIEMPIMENTO DELLA STRUTTURA DATI
Dim newBlogPost As blogInfo = Nothing
newBlogPost.title = sTitolo
'valori possibili. Vedere anche sopra, nella definizione della struttura
'Draft','Pending Review','Private','Published'
newBlogPost.post_status = sStatus
newBlogPost.description = sMessaggio
'Dim cats() As String = {"Download"}
newBlogPost.categories = arrayCategorie

categories = CType(XmlRpcProxyGen.Create(GetType(IgetCatList)), IgetCatList)
clientProtocol = CType(categories, XmlRpcClientProtocol)

clientProtocol.Url = sUrl
Dim result As String = Nothing
result = ""
Try
'l'ultimo parametro "True" indica che il post deve essere pubblicato

result = categories.NewPost(1, sUtente, sPassword, newBlogPost, True)
'se >0 ok
Return result

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Function

Questo è un progetto di esempio completo e funzionante con WordPress 3.3.1:

[Download not found]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

wp-puzzle.com logo

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.