From: Eric Hodel Date: 2006-07-22T02:37:24+09:00 Subject: Re: What's wrong with this code? On Jul 21, 2006, at 7:00 AM, ry an wrote: > I'm trying to interface with the flickr API to pull my photos into my > site. I don't want to use the "flickr.rb" gem, I'd like to do it the > other way so I can learn (plus I had trouble loading the gem on my > server). Anyway, here's what I have: > > #Application.rb controller > > def get_response(path, http) > request = Net::HTTP::Get.new(path) > response = http.request(request) > response.value > response.body > end > > path = > "/services/rest/? > api_key=API_KEY&method=flickr.photos.search&user_id=USER_ID&tags=TAG" > http = Net::HTTP.new('flickr.com') > > @photo_ids = Array.new > http.start do |http| > xml = get_response(path, http) > REXML::Document.new(xml).root.get_elements('photo').each do > |photo| I don't know if this gives you every photo or not. I think the path is wrong. > id = photo.attributes['id'] > @photo_ids << id > end > end > > #Application.rhtml layout > > <% for p in @photo_ids %> > <%= p %> > <% end %> > > This just doesn't do anything. It doesn't give me errors, but it the > @photo_ids variable is empty. I've also tried <%= p.id %> and so on. > > Can someone see something wrong with this code? Thanks! The easiest way to do this is to use OpenURI. $ cat x.rb require 'open-uri' require 'rexml/document' api_key = ARGV.shift user_id = ARGV.shift tag = ARGV.shift uri = "http://flickr.com/services/rest/?api_key=#{api_key} &method=flickr.photos.search&user_id=#{user_id}&tags=#{tag}" open uri do |res| xml = REXML::Document.new res.read xml.elements['/rsp/photos'].each_element do |photo| photo_id = photo.attributes['id'] server = photo.attributes['server'] secret = photo.attributes['secret'] puts "http://static.flickr.com/#{server}/#{photo_id}_#{secret}.jpg" end end $ ruby x.rb API_KEY 50178138@N00 mercury http://static.flickr.com/73/187409033_e2b8691c02.jpg http://static.flickr.com/44/187408732_37eb026666.jpg http://static.flickr.com/48/151487121_a7f27506d9.jpg http://static.flickr.com/53/126211398_cd750a0fd3.jpg http://static.flickr.com/40/104473626_c98df0235f.jpg http://static.flickr.com/32/42799590_b8f1774b1a.jpg http://static.flickr.com/33/42799509_315fceaa46.jpg http://static.flickr.com/32/42799392_56595332d1.jpg http://static.flickr.com/30/42799302_4c984142ed.jpg http://static.flickr.com/33/42799253_52ab0cc23b.jpg http://static.flickr.com/26/42799227_87135b0f18.jpg http://static.flickr.com/10/16179999_0def2efd17.jpg $ PS: Matz has ridden in that car. -- Eric Hodel - drbrain@segment7.net - http://blog.segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com