VB.NET: inserire un post su BlogSpot utilizzando le Google Blogger Data API

20 10 2008

Un breve frammento di codice che sto utilizzando per la realizzazione di un tool di ‘blog-sync’ (che rilascero’ a breve).

Utilizzando le Google Blogger Data API e’ possibile collegarsi alla piattaforma di blogging di Google e aggiungere un post a un blog.

Per prima cosa e’ necessario scaricare le Google Data API e, una volta scompattato l’archivio, e’ necessario aggiungere nel progetto VB le reference ai file presenti nella directory ‘Redist’.

A questo punto, realizziamo una breve sub in VB:


Imports Google.GData.Extensions
Imports Google.GData.GoogleBase
Imports Google.GData.Client
Imports System.Net
Imports System.Xml
Imports System.IO
Imports System.Text.RegularExpressions

  Private Sub PostToBlogger(ByVal titolo As String, ByVal contenuto As String,  ByVal blogid As String)
        Dim service As Service = New Service("blogger", "BlogName")
        service.Credentials = New GDataCredentials("BLOGGER USERNAME", "BLOGGER PASSWORD")
        Dim factory As GDataGAuthRequestFactory = service.RequestFactory()
        factory.AccountType = "GOOGLE"

        Dim newPost As New AtomEntry()
        newPost.Title.Text = titolo
        newPost.Content = New AtomContent()
        newPost.Content.Content =  contenuto
        TextBox1.Text = TextBox1.Text & "--- " & newPost.Title.Text
        newPost.Updated = Date.Now

        Dim query As New FeedQuery()
        query.Uri = New Uri("http://www.blogger.com/feeds/" + blogid + "/posts/default")

        ' Verifico se il post e' gia' presente. Se si esco.
        Dim feed As AtomFeed = service.Query(query)
        For Each entry As AtomEntry In feed.Entries
            If Trim(entry.Title.Text).ToUpper = Trim(newPost.Title.Text).ToUpper Then
                TextBox1.Text = TextBox1.Text & " -- NOTIZIA GIA' PRESENTE --" & vbCrLf
                Exit Sub
            End If
        Next

        Dim blogFeedUri As New Uri("http://www.blogger.com/feeds/" + blogid + "/posts/default")
        Try
            Dim createdEntry As AtomEntry = service.Insert(blogFeedUri, newPost)
            TextBox1.Text = TextBox1.Text & " -- PUBBLICATO --" & vbCrLf
        Catch ex As Exception
            TextBox1.Text = TextBox1.Text & " -- ERRORE: " & vbCrLf & ex.InnerException.Message & vbCrLf
        End Try
    End Sub

 

La sub si discosta da quanto presentato nella documentazione ufficiale solo per la possibilita’ di verificare che il post sia stato gia’ inserito (proprio per la necessita’ di utilizzare in un tool di sincronizzazione di blogs) prendendo come ‘dato univoco’ il titolo dello stesso.

Probabilmente il metodo di identificazione dei duplicati e’ migliorabile, ci lavorero’! (naturalmente ogni suggertimento e’ ben accetto!).



Azioni

Informazione

5 risposte

24 10 2008
Lisso

I got the example which is related to VB.Net but not the language which you have used to describe your blog.

27 10 2008
BloggerSync, da RSS a post su Blogger in un click! « Andy’s Blog

[...] da RSS a post su Blogger in un click! 27 10 2008 Nel precedente articolo spiegavo come utilizzare le Google Blogger Data Api per pubblicare post sulla piattaforma di [...]

31 01 2009
roberto

Qual’è l’api di blogger? Sai aiutarmi?

1 02 2009
7 02 2009
Bloggersync, da rss a post su blogger in un click!

[...] precedente articolo spiegavo come utilizzare le Google Blogger Data Api per pubblicare post sulla piattaforma di [...]

Lascia un commento