quarta-feira, 9 de maio de 2012

Google API - Listar posts de um blog

Um exemplo simples da leitura das informações (posts, títulos, datas, editores, etc) de um blog utilizando as APIs do Google. Com isso é possível, por exemplo, criar um widget para adicionar ao seu site com os posts dos seus blogs.

Primeiramente você precisa das APIs, baixe e instale o Google Data API Setup em:
http://code.google.com/p/google-gdata/downloads/list

Adicione a referência ao componente Google.GData.Client.dll que após a instalação das APIs deverá estar no caminho C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Client.dll.


Para facilitar, faça o import da dll:

Imports Google.GData.Client

Agora você precisa descobrir qual o blogID do blog que deseja listar as informações, para isso, use o código abaixo para descobrir isso:

Dim service As New Service("blogger", "MeuExemplo1")
service.Credentials = New GDataCredentials("email@gmail.com", "password")
           
Dim feed As AtomFeed
Dim feedQuery As FeedQuery

feedQuery = New FeedQuery(http://www.blogger.com/feeds/default/blogs)
feed = service.Query(feedQuery)

For Each entry As AtomEntry In feed.Entries
  MsgBox(entry.Title.Text & " - " & entry.Id.AbsoluteUri)
Next

Ao executar esse código será mostrado todos os blogs cadastrados para o usuário e senha informados, e irá mostrar também a informação que precisamos, que é o blogID, essa informação está no final da string mostrada.


Esse número no final da string (riscado em vermelho) representa o blogID, que iremos utilizar no código abaixo.

Dim service As New Service()
Dim feed As AtomFeed
Dim feedQuery As FeedQuery
Dim blogid As String

blogid = "7899999999999999991"
feedQuery = New FeedQuery("http://www.blogger.com/feeds/" + blogid + "/posts/default")
feed = service.Query(feedQuery)
ListBox1.Items.Add(feed.Title.Text)
For Each Entry As AtomEntry In feed.Entries
  ListBox1.Items.Add(Entry.Title.Text)
Next

Pronto, basta colocar o blogID que desejar no código acima e ser feliz, o objeto Entry conterá as informações sobre todos os posts do blog. Repare que nesse processo não é preciso estar logado. Como exemplo eu mandei incluir em uma ListBox o título do blog e os títulos de cada post, mas as possibilidades são infinitas.

Nenhum comentário:

Postar um comentário