Ruby on rails 基于Ruby的Facebook-FQL查询

Ruby on rails 基于Ruby的Facebook-FQL查询,ruby-on-rails,ruby,facebook,get,facebook-fql,Ruby On Rails,Ruby,Facebook,Get,Facebook Fql,我正在尝试用ruby简单地获取Facebook fql.query方法,但没有成功 url的结构基本上如下所示: https://api.facebook.com/method/fql.query?query=SELECT total_count FROM link_stat WHERE url = "http://twitter.com/"&format=json 我在StackOverflow上读过几篇关于如何提出这些请求的帖子,但即使我不断收到: /usr/lib/ruby/1.

我正在尝试用ruby简单地获取Facebook fql.query方法,但没有成功

url的结构基本上如下所示:

https://api.facebook.com/method/fql.query?query=SELECT total_count FROM link_stat WHERE url = "http://twitter.com/"&format=json
我在StackOverflow上读过几篇关于如何提出这些请求的帖子,但即使我不断收到:

/usr/lib/ruby/1.8/net/http.rb:560:在'initialize'中:getaddrinfo:名称或服务未知(SocketError)

在http_get函数的第一行

def http_get(domain,path,params)
    return Net::HTTP.get(domain, "#{path}?".concat(params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&'))) if not params.nil?
    return Net::HTTP.get(domain, path)
end

def getFacebookStats(url)

    params = {
        :query => 'SELECT total_count FROM link_stat WHERE url = "' + url + '"',
        :format => 'json'
    }

    http = http_get('https://api.facebook.com', '/method/fql.query', params)
    puts http

end

http调用接受主机,而不是URL:

def http_get(domain,path,params)
    path = unless params.blank
        path + "?" + params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
      else
        path
    end
    request = Net::HTTP.get(domain, path)

end

def get_facebook_stats(url)

    params = {
        :query => 'SELECT total_count FROM link_stat WHERE url = "' + url + '"',
        :format => 'json'
    }

    http = http_get('api.facebook.com', '/method/fql.query', params)
    puts http

end
不要在Ruby上的方法名称上使用驼峰大小写

如果要进行HTTPS呼叫,则必须使用不同的呼叫:

require 'net/http'
require 'net/https'

http = Net::HTTP.new('somehost.com', 443)
http.use_ssl = true
path = '/login.html'

resp, data = http.get(path, nil)

谢谢,毛里西奥!我会考虑这些笔记的。从URL中删除https解决了问题:)您查看了吗?