ruby-on-rails - 使用 Ruby 的 Facebook FQL 查询

标签 ruby-on-rails ruby facebook get facebook-fql

我正在尝试使用 ruby​​ 对 Facebook fql.query 方法执行简单的 GET,但没有成功。

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:in `initialize': getaddrinfo: Name or service not known (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)

关于ruby-on-rails - 使用 Ruby 的 Facebook FQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178590/

相关文章:

ruby - 使用 ruby​​ Net :HTTP API to a remote apache server failing with 409 Conflict 上传文件

ruby-on-rails - 如何在 rails 3 中使用自定义文本在 facebook 上实现 like 并在 twitter 上分享

ruby-on-rails - 无法将 CKeditor 集成到 rails_admin gem(使用 gem rich)

ruby-on-rails - 测试和规范之间有什么区别?

ruby-on-rails - 使用带有无效字符的 Net::FTP gettextfile(ASCII-8BIT 与 UTF-8)

ruby - 如何使用不等式的 ruby​​ "case ... when "?

ruby 错误 SSL_connect

php - Facebook 登录 api 返回用户电子邮件地址

javascript - MVC3 - 如何在 JavaScript 中动态设置 facebook 应用程序 ID?

ruby-on-rails - 从 Rails 应用程序访问 Salesforce 和查询