4

GoogleAPIRubyクライアントを介してGoogleのカスタム検索APIを使用しようとしています。Google APIコンソールを使用してAPIキーを設定し、CSEも作成しました。ドキュメントに基づくと、APIキー(私が行っている)を提供する限り、listメソッドを呼び出すためにOAuth2認証トークンは必要ないようです。ただし、以下のコードを実行しようとすると、次のエラーが発生します。

ArgumentError:アクセストークンがありません。

私は何が欠けていますか?これが私のコードです:

# create client
client = Google::APIClient.new

# Fetch discovery doc
search = client.discovered_api('custom search')

# Call list method
response = client.execute(
  search.cse.list, 'key' => '<my API key>', 'cx' => '<my CSE id>', 'alt' => 'json', 'q' => 'hello world'
)
4

4 に答える 4

2

これは実際にはクライアントのバグだと思います(アルファ版です)。もう少しそれをいじった後、私は回避策を見つけました:

クライアントオブジェクトを作成した直後に、「ダミー」アクセストークンを割り当てます。

client.authorization.access_token = '123'

次に、「ArgumentError:Missingaccesstoken」を取得せずにsearch.cse.listメソッドを呼び出すことができます。エラー。

于 2011-11-07T17:21:56.947 に答える
0

ルビーでGoogleCSEを使用した直後の場合は、google-cseを試してください。しばらく個人的に使っていましたが、作ったばかりです。アルファクライアントよりもはるかに簡単に操作できます

于 2013-02-07T12:14:26.663 に答える
0

client.retries = 3コードに追加することでこの問題が解決することがわかりました。

于 2014-11-06T12:01:54.127 に答える
0

gemの現在のバージョン(0.7.1)ではnil、キーの設定に加えて、認証をに設定する必要があります。

require 'google/api_client'

client = Google::APIClient.new
client.key = ENV['GOOGLE_API_KEY']
client.authorization = nil

client.execute ...
于 2014-11-11T21:11:09.097 に答える