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
Другие вопросы по тегам