Примеры API-перевода Google-api-ruby-client - PullRequest
5 голосов
/ 22 февраля 2011

Я был очень рад увидеть код Google: google-api-ruby-client проект, потому что для меня это означало, что пользователи Ruby могут полировать код с помощью Google API -s.

Пока что я в замешательстве, потому что единственный приведенный пример использует Buzz, и из моих экспериментов API Google Translate (v2) должен вести себя совершенно иначе, чем Buzz в google. -api-рубиново-клиент .

Я был заинтригован демонстрационным примером «Исследователя» - но, насколько я вижу, он не слишком интересен для исследователя. Все, что он делает, это вызывает службу Buzz, а затем выискивает то, что УЖЕ знает о Buzz. Для меня исследователь должен позволить вам «обнаруживать» сервисы и методы / функции, предоставляемые без обязательно их знания.

Мне бы очень хотелось услышать о командной строке и настольных приложениях Ruby, использующих это: google-api-ruby-client для сервисов прочее чем Buzz и, в частности, API-интерфейс Translate (я меньше заинтересован в существующих драгоценных камнях Ruby, использующих сервис translate на данный момент).

спасибо ... будет

Ответы [ 5 ]

9 голосов
/ 01 марта 2011

Код для вызова API перевода выглядит так:

require 'google/api_client'
client = Google::APIClient.new(:key => YOUR_DEVELOPER_KEY)
translate = client.discovered_api('translate', 'v2')
result = client.execute(
  :api_method => translate.translations.list,
  :parameters => {
    'format' => 'text',
    'source' => 'en',
    'target' => 'es',
    'q' => 'The quick brown fox jumped over the lazy dog.'
  }
)
3 голосов
/ 14 июля 2012

Я разместил полный код и детали для проблем с аутентификацией и обходных путей (используя ключ API) на кодовая обитель - google-api-клиент для ruby ​​

После установки гема, получения ключа API Google и настройки пользовательского поискового аккаунта (с расширением его настроек для всех веб-страниц) .... Я мог бы перенаправить результаты поиска Google в irb с помощью следующего (скопировать и вставить в irb, затем проверьте ответ, когда закончите):

  require 'openssl'
  OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

  require 'google/api_client'
  client = Google::APIClient.new(:key => 'your-api-key', :authorization => nil)
  search = client.discovered_api('customsearch')

  response = client.execute(
    :api_method => search.cse.list,
    :parameters => {
      'q' => 'the hoff',
      'key' => 'your-api-key',
      'cx' => 'your-custom-search-id'
    }
  )

Это для того, чтобы получить доступ сервера к API Google и обойти все oauth. НАИБОЛЕЕ ВАЖНЫМ БИТОМ был параметр: authorization при создании клиента .... это гарантирует, что ключ api используется при вызове, вместо oauth. Без этого вы получите 401 статус несанкционированного ответа каждый раз.

0 голосов
/ 09 февраля 2012

У меня есть решение здесь (http://jjinux.blogspot.com/2012/02/ruby-working-around-ssl-errors-on-os-x.html), которое обезьяна исправляет Net :: HTTP # use_ssl =, чтобы использовать корневые сертификаты операционной системы.

0 голосов
/ 09 марта 2011

Привет (все) заинтересованные люди ,

Больше прогресса. Я поставил отчет об ошибке для Google-API-Ruby-client для части этой проблемы. Краткая версия заключается в том, что для Translate (по крайней мере) Google-API-Ruby-client завершается с ошибкой в ​​SSL :: VERIFY_PEER и успешно выполняется при использовании SSL :: VERIFY_NONE.

В скорлупе гайки есть одна проблема, которую нужно исправить, и два необходимых улучшения.

  1. Уровень интерфейса API-клиента должен сообщать об ошибке или Предупреждение , когда нижележащие уровни (как могут быть известны или обнаружены) лишают законной силы безопасность, идентичность-конфиденциальность и целостность данных.
  2. Отчет о соответствующей информации о конфигурации используемого базового сервиса (например, использовался ли SSL? Был ли это VERIFY_PEER или VERIFY_NONE? Какой полный URI выдает ошибку? Для меня, я думаю, эта информация может быть полезна для файла журнала). сортировки и быть 'запрашиваемым' опцией класса обслуживания (методы класса) и переменной экземпляра.
  3. Обеспечьте диагностику с вашим дизайном Gem и расширите диагностику в свой собственный код (например, такие метрики, как: количество выполненных сетевых вызовов, количество выполненных байтов и байтов).
0 голосов
/ 04 марта 2011

Спасибо Бобу, я на шаг вперед.

Я сейчас нахожу проблемы с файлом сертификатов .CRT.У меня есть CA-комплект, который я получил от генератора CA-комплектов, доступного на сайте cURL (http://curl.haxx.se/ca).

Читайте также: Как вылечить рискованное поведение HTTPS по умолчанию в NetHhttps

Я думаю, что следующий вопрос должен быть о поиске пакета для OpenSSL.

w.

...