Esses dias andei testando o funcionamento do Rails + Flickr, pra isso procurei um plugin que fizesse o serviço pesado. Ao ir direto no site do Flickr e procurando sobre sua
API podemos ver que eles indicam 3 plugins,
flickr-ruby,
flickr e
rflickr.
O detalhe é que todos eles estão desatualizados, sendo que o rflickr parece ser o mais utilizado pelo pessoal conforme pode-se notar
aqui.
Fiz alguns testes tanto com o
flickr e
rflickr, sendo que em nenhum dos casos consegui fazer o que eu queria, até porque parece que por estarem desatualizados a documentação não bate com o funcionamento real, não sei, pode ter sido "berozice" minha, mas, enfim, acabei ficando de saco cheio e resolvi dar mais uma passeada na net antes de partir pra ignorância e fazer tudo na mão grande.
Com um pouco mais de pesquisa acabei encontrando um outro plugin chamado
Flickr_Fu desenvolvido por Ben Wyrosdick que me apreceu bem atualizado e
como vocês podem ver ele está hospedado no
GitHub, o que prova que seu criador está antenado. =P

Bem, dando continuidade fui testá-lo e então resolvi fazer esse post com o procedimento para usá-lo de forma simples pois não encontrei muita coisa falando sobre ele, apenas esse
post que por acaso já ajuda bastante.
Mãos à obra!Primeiro passo, instalar o plugin: (
gem install flickt-fu ). Note que é instalada uma gem dependende
xml-simple se não me engano.
Segundo passo, pegar sua
KEY do Flick, ou seja com essa chave você poderá ter acesso ao Flickr através de sua API. Ahhh.. antes que eu esqueça, quando for solicitar a chave dê preferência a pedir uma chave
NÃO COMERCIAL para fazer seus testes, pois a chave do tipo comercial pode levar meses pra ser liberada, a minha por exemplo demorou 4 meses pra chegar o_O.
Terceiro passo, crie um arquivo com extensão YML (YAML) e salve em um diretório do seu projeto. Por padrão criamos dentro da pasta
/config e se salva como
flickr.ymlQuarto passo, insira dentro do arquivo flickr.yml o seguinte conteúdo:
key: SUA_KEY_FLICKR
secret: SEU_SECRET_FLICKR
token_cache: token.yml
Ou seja, insira a chave que você pegou no Flickr e o segredo também, os dois são informados quando você cria a
KEY. Observe a terceira linha, ela informa qual o arquivo que você vai utilizar para guardar o
token que será fornecido ao se estabelecer a conexão com o Flickr.
Quinto passo, crie um controller no seu projeto Rails (
script/generate controller FlickrTest ).
Sexto passo, no seu controller utilize esse código:
require 'flickr_fu'
before_filter :connect
def get_photos
@photos = @flickr_account.photos.search(:user_id => SUA_ID_FLICKR, 'per_page' => 200, 'page' => 1)
end
def get_url
render :text => @flickr_account.auth.url(:write)
end
def get_token
@flickr_account.auth.cache_token
end
def connect
@flickr_account = Flickr.new("#{RAILS_ROOT}/config/flickr.yml")
end
Antes de continuar pegue o seu ID Flickr, que pode ser conseguido facilmente através
desse site.
A explicação do código acima é a seguinte:
1 - Carregamos a biblioteca Flickr_fu
2 - Antes de rodar qualquer action instanciamos a classe Flickr e disponibilizamos na variável
@flickr_account3 - A action
get_photos irá retornar todas as 200 primeiras fotos
públicas que estão na sua conta Flickr. Observe que aqui já temos acesso às fotos públicas de qualquer usuário Flickr, bastando para isso apenas trocar o ID do usuário.
Agora vem a parte boa...4 - A action
get_url vai mostrar na tela um link
que deve ser acessado para que sua conta Flickr autorize o sistema a trabalhar com as fotos, inclusive as privadas. Observe o símbolo
:write, ele informa ao Flickr que você espera uma autorização de escrita, em outras palavras, você poderá fazer upload de fotos direto do seu sistema, pesquisar fotos restritas, adiconar comentários, tags e fazer qualquer alterção que faria direto no flickr. Verifique a
documentação do plugin para outros tipos de acesso, por exemplo
:read.
5 - Por último, a action
get_token armazena no arquivo
token.yml a permissão de acesso ao site (verifique que é criado um arquivo token.yml na raiz do seu projeto), ou seja, após rodar essa action não será mais necessário pedir autorização da sua conta para que o sistema possa acessá-lo irrestritamente.
Daí pra frente é só ler a documentação e usar!
Bem, dúvidas sugestões ou qualquer comentário é bem vindo.
Abraço!
UPDATE 18/02/2009O flickr-fu agora está hospedado no github (
http://github.com/commonthread/flickr_fu/tree/master)
Lembre-se de se for o caso adicionar o source git na sua lista:
gem sources -a http://gems.github.comDepois você pode fazer uma procura por "flickr_fu"...
sudo gem search flickr_fu --remote