Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/ruby
require 'net/http'
require 'rubygems'
require 'active_support'

url = URI.parse("http://www.facebook.com/ajax/social_graph/fetch.php")

5.times do |page|
  req = Net::HTTP::Post.new(url.path, {
    'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
    'User-Agent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9',
    'Origin' => 'http://www.facebook.com',
    'X-Svn-Rev' => '189912',
    'Accept-Language' => 'en-us',    
    'Cookie' => 'lotsamagicstuff',
    })

  req.body = "page=#{page}&edge_type=fan&limit=100&class=FanManager&node_id=47337974490&post_form_id=magic&fb_dtsg=magic&post_form_id_source=AsyncRequest&__a=1"

  response = Net::HTTP.start(url.host, url.port) do |http| 
    http.request(req)
  end

  puts "Got Page #{page}"
  File.open("/tmp/fb_fanjack_page#{page}.js", 'w').write(response.body)
end

# this will be the header for the CSV file
puts 'facebook_id,Name,City-state,facebook_pic_big'

5.times do |page|
  js = File.read("/tmp/fb_fanjack_page#{page}.js")
  js = js.gsub(/for \(;;\);/, '')
  data = ActiveSupport::JSON.decode(js)
  users = data["payload"]["user_info"]
  users.each do |user|
    puts '"' + [user[0], user[1]['title'], user[1]['subtitle'], user[1]['pic']].join('","') + '"'
  end
end