5

google code: google-api-ruby-clientプロジェクトを見てとてもうれしかったです。なぜなら、Ruby の人々がGoogle APIを使用してコードを磨くことができるということを意味していたからです。

与えられた唯一の例が Buzz を使用しており、私の実験から、Google 翻訳(v2) API はgoogle-api-ruby-client のBuzz とはまったく異なる動作をする必要があるため、今のところ困惑しています。

私は「Explorer」のデモの例に興味をそそられました - しかし、私が見る限り、それはあまり探検家ではありません. Buzzサービスを呼び出して、Buzzサービスについてすでに知っていることを突っ込むだけです。私にとって、エクスプローラーは、必ずしもそれらをまだ知らなくても、公開されているサービスとメソッド/機能を「発見」できるようにする必要があります。

これを使用する Ruby コマンド ラインとデスクトップ アプリケーションについて聞きたいです: Buzz以外のサービス、特に Translate APIの google-api-ruby-client (翻訳サービスを使用する既存の Ruby gemsにはあまり興味がありません。この点)。

ありがとう...

4

6 に答える 6

9

翻訳 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.'
  }
)
于 2011-03-01T01:01:34.363 に答える
3

私は、認証の問題と回避策(APIキーを使用)の完全なコードと詳細を コードの住居に投稿しました-google-api-client for ruby

gemをインストールし、Google APIキーを取得し、カスタム検索アカウントを設定した後(その設定はすべてのWebページに拡張されます)...次のようにirbでGoogle検索結果をトロールできます(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'
    }
  )

これは、サーバーがgoogle apiにアクセスし、すべてのoauthをバイパスするためです。最も重要なビットは、クライアントを構築するときの:authorization paramでした。これにより、呼び出し時にoauthではなくapiキーが使用されるようになります。これがないと、毎回401の未承認の応答ステータスが表示されます。

于 2012-07-14T03:48:25.507 に答える
0

ここに解決策があります (http://jjinux.blogspot.com/2012/02/ruby-working-around-ssl-errors-on-os-x.html) サルは Net::HTTP#use_ssl= に順番にパッチを当てますオペレーティング システムのルート証明書を使用します。

于 2012-02-09T00:31:52.330 に答える
0

こんにちは(すべての)関心のある人々

さらに進歩。この問題の一部について、 Google-API-Ruby-clientバグレポートを掲載しました。短いバージョンは、(少なくとも) Translate の場合、Google-API-Ruby-clientは SSL::VERIFY_PEER で失敗し、SSL::VERIFY_NONE が使用されると成功します。

簡単に言うと、修正すべき問題が 1 つあり、機能強化が 2 つ必要です。

  1. API クライアント インターフェイス レイヤーは、基礎となるレイヤー (既知または検出可能なもの) がセキュリティ、ID プライバシー、およびデータの整合性を無効にする場合に、エラーまたは警告を報告する必要があります。
  2. 使用されている基礎となるサービスの関連する構成情報を報告します (たとえば、SSL が使用されましたか? VERIFY_PEER または VERIFY_NONE でしたか? エラーを発生させる完全修飾 URI は何ですか?サービス クラス (クラス メソッド) のオプションとインスタンス変数によって「要求」されます。
  3. Gem デザインで診断を提供し、診断を独自のコードに拡張します (たとえば、ネットワークの「実行」呼び出しの数、入力バイト数と出力バイト数などのメトリック)。
于 2011-03-09T17:16:44.337 に答える
0

ボブのおかげで、私は一歩前進しました。

現在、.CRT 証明書ファイルに問題があります。cURL サイト ( http://curl.haxx.se/ca )で利用可能な CA バンドル ジェネレーターから取得した CA バンドルがあります。

また読む: NetHhttps の危険なデフォルトの HTTPS 動作を修復する方法

次の質問は、OpenSSL のバンドルを見つけることであると思います。

w。

于 2011-03-04T13:32:11.363 に答える