API поиска Bing в Ruby
Я прочитал "API поиска Bing - Быстрый старт", но я не знаю, как сделать этот http-запрос в Ruby ( Утомленный)
Как перевести "Stream_context_create()" в Ruby? И что это значит?
"API поиска Bing - Быстрый старт"
Я хотел бы использовать Ruby SDK, но те, которые я нашел, устарели ex (Rbing) https://github.com/mikedemers/rbing Знаете ли вы современную оболочку для API поиска Bing (результаты только через Интернет)?
3 ответа
Хорошо, после часа разочарования я нашел способ сделать это. Этот код ужасен, потому что это первая версия, которую я получил. По сути, игнорируйте все, что касается кодировки base64, потому что она выдает ошибку, что поддерживается только oAuth и базовая аутентификация. Оказывается, документация Microsoft была неправильной, и вы должны просто использовать свой ключ учетной записи в качестве пароля в запросе вместо закодированной строки.
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
Попробуйте поиск bing:
require 'bing-search'
BingSearch.account_key = <your key>
BingSearch.web_only = true
results = BingSearch.web('stack overflow')
Документация здесь, а источник на GitHub. (Отказ от ответственности: я написал камень поиска Bing.)
Ничего себе, Microsoft Docs, что-то очень простое, и я потратил 30 минут на то, чтобы разобраться в том, как его использовать. В любом случае, вот еще один вариант ответа Криса Буя с использованием RestClient:
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