Ruby中的Bing Search API

时间:2012-12-01 14:38:46

标签: ruby ruby-on-rails-3 bing-api azure-marketplace

我读了"Bing Search API - Quick Start",但我不知道如何在Ruby中发出这个http请求(Weary

如何翻译" Stream_context_create()"在Ruby?这是什么意思?

"Bing Search API - Quick Start" enter image description here

我想使用Ruby sdk但我发现的那些已被弃用 ex(Rbing)https://github.com/mikedemers/rbing 您是否了解Bing Search API的最新Wrapper(仅限Web结果)?

3 个答案:

答案 0 :(得分:7)

好的,经过一个小时的挫折后,我想出了办法。这段代码很糟糕,因为它是我工作的第一个版本。基本上,忽略有关base64编码的一切,因为它给了我一个错误,只支持oAuth和基本身份验证。原来微软的文档是错误的,你应该只使用你的帐户密钥作为请求中的密码而不是编码的字符串。

require 'net/http'

accountKey = 'KEY'

url = 'https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=%27xbox%27&$top=50&$format=json'

uri = URI(url)

req = Net::HTTP::Get.new(uri.request_uri)
req.basic_auth '', accountKey

res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https'){|http|
  http.request(req)
}
puts res.body

答案 1 :(得分:2)

试试bing-search gem:

require 'bing-search'

BingSearch.account_key = <your key>
BingSearch.web_only = true
results = BingSearch.web('stack overflow')

文档为here,来源位于GitHub。 (免责声明:我写了bing-search gem。)

答案 2 :(得分:1)

哇,微软软件呃,这么简单,我花了30分钟在网上搜索,找出如何使用它。无论如何,这是使用RestClient

对Chris Bui的回答的另一种看法
class BingSearch
    def self.for(account_key, query)
        puts RestClient.get("https://:#{account_key}@api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query='#{CGI::escape(query)}'&$format=json")
    end
end