What's wrong with this code?

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|
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!

On Jul 21, 2006, at 7:00 AM, ry an wrote:

  response.value
  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.

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












$

PS: Matz has ridden in that car.


Eric H. - [email protected] - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com