mercredi 30 décembre 2009

#Ruby #twitter API, Comment recuperer le user_id twitter à partir du nom d'utilisateur

Lorsqu'on travaille avec les API twitter, il faut faire attention aux limitations mise en place par twitter. Des limites existent sur le nombre de requetes venant d'une adresse IP , pour un utilisateur authentifié etc (ici le détail de leur politique). L'idée est d'utiliser les ressources les plus accessibles.

Un certains nombres d'information ne sont disponibles qu'a partir du user_id. cette donnée est numérique et elle n'est pas affichée directement.

Ce programme permet d'effectuer la correspondance entre un nom twitter (screen_name) et son user_id. Il utilise des requetes simples HTTP non authentifiées, sans risque de blocage.
Je remplie un fichier avec des noms twitter , le programme va rechercher la page twitter, la parse et retrouve le user_id. En sortie le programme sauvegarde les information dans un fichier au format YAML.

require 'rubygems'
require 'net/http'
require 'uri'

my_hash =Hash.new
## read standard input
ARGF.each_line do |line|
line.chomp!
cible = "http://twitter.com/" + line
response = Net::HTTP.get URI.parse(cible)
## sorry I have arrived from Perl
response=~ /user_(\d+)/
id_user=$1
my_hash[line] =id_user
end
# dump hash in yaml file
File.open('radar.yaml','w') do |out|
YAML.dump my_hash,out
end


En entrée:

germanlinux
woork


En sortie:

---
germanlinux: "25286531"
woork: "9689232"


L'étape suivante consistera à utiliser ces user_id dans l'API:

http://twitter.com/users/show.json?user_id=nnnn


Mais c'est un autre post.

1 commentaire:

Matt a dit…

youhou ... merci :-)

je teste ça.