API rest para OpenSocial do Orkut com ruby

A documentação da API rest do OpenSocial do orkut detalha muito bem as opções e formatos de retorno disponíveis porém é um tanto vaga sobre como fazer a autenticação necessária para usá-la. Basicamente lá é explicado os parâmetros a serem enviados e que o protocolo é o OAuth. Então detalho aqui como obter por exemplo os dados de um usuário apartir desta API.

Em primeiro lugar é preciso obter a consumer key e consumer secret de sua aplicação. Isso é feito gerando um token aqui: https://www.google.com/gadgets/directory/verify. Você deve colocar esse token dentro da tag content do xml descritor de sua aplicação e depois fazer a validação provando que é dono da aplicação. Com isso o Google irá lhe informar seu consumer key e consumer secret. Guarde eles com carinho.

Depois, com a gem oauth instalada você deverá executar um código semelhante ao exibido abaixo, com a premissa de que as variaveis consumer_key e consumer_secret estão preenchidas com os correspondentes à sua aplicação. E que a variável id é o id do usuário do orkut que você está querendo conhecer melhor.

  consumer = OAuth::Consumer.new(
    consumer_key,
    consumer_secret,
    :site => 'http://www.orkut.com',
    :scheme => :query_string,
    :http_method => :get
  )
   
  request = consumer.create_signed_request(:get,
    "/social/rest/people/#{id}/@self?xoauth_requestor_id=#{id}") 
  res = Net::HTTP.start('www.orkut.com', 80) do
    |h| h.request(request)
  end

  puts res.body

Referência: http://programandosemcafeina.blogspot.com

Comentar

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Quebras de linhas e parágrafos são feitos automaticamente.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Mais informações sobre as opções de formatação

Este site foi feito com Drupal, um sistema aberto de gerenciamento de conteúdo.