Wolf Clan Brasil

sexta-feira, 9 de setembro de 2011

Usando o encurtador de URLs Bit.ly no Rails 3

Bom vou mostrar como fiz para utilizar o encurtador de URLs Bit.ly com o Rails 3.

Primeiro a criação do Post. Vou utilizar o recurso do Scaffold para agilizar.
  rails g scaffold post title:string body:text short_url:string 

O campo short_url será utilizado para guardar o link encurtado pelo Bity.ly nas views você pode simplesmente excluir o campo “short_url”

no controller do Post
def create
@post = Post.new(params[:post])

respond_to do |format|
if @post.save
encurtaurl(@post) #chama a action que encurtará o link
format.html { redirect_to(@post, :notice => 'Postagem cadastrada com sucesso.') }
format.xml { render :xml => @post, :status => :created, :location => @post }
else
format.html { render :action => "new" }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end

Antes de criar a action para o encurtador precisamos cadastrar no link http://bit.ly/a/sign_up e pegar a apiKey no link http://bit.ly/account/your_api_key .

Ainda no controller do Post adicione a action encurtaurl

#/controllers/posts_controller.rb

#bit.ly
def encurtaurl(post)

@post=Post.find(post)
require 'open-uri'
url= url_for(@post).to_s
link = open('http://api.bit.ly/v3/shorten?login=seu_login&apiKey=sua_api_key&longUrl=' + url + '&format=txt').read
@post.short_url = link.to_s
@post.save
end

Tem três formas de utilizar a api do bit.ly: XML, Json e txt. Utilizei txt porque achei a mais simples de implementar, se alguém fizer de outra forma por favor compartilhe conosco.

Nenhum comentário: