2

ログイン (OAuth) 部分は既にアプリで動作しています。今しようとしているのは、認証されたユーザーのアクティビティ リスト (ステータス フィードなど) をプルダウンすることです。

ユーザーは、認証された後にこのリストをプルダウンするオプションがあり、これまでのところ私のコードは次のとおりです。

# User Model
  def gplus
    auth = authorizations.find_by_provider("gplus")
    client = Google::APIClient.new(application_name: "AppName", application_version: '1.0', authorization: nil)

    plus = client.discovered_api('plus', 'v1')

    result = client.execute(
      key: API["gplus"][Rails.env]["secret"],
      api_method: plus.people.get,
      parameters: { 'collection' => 'public', 'userId' => 'me'  }
    )

    return result.data
  end

これが私が遭遇し続ける問題です(レールコンソールから)

    #<Google::APIClient::Schema::Plus::V1::Person:0x3fe649ed04bc 
DATA:{"error"=>{"errors"=>[{"domain"=>"usageLimits", "reason"=>"keyInvalid", "message"=>"Bad Request"}], "code"=>400, "message"=>"Bad Request"}}>

https://github.com/google/google-api-ruby-clientを使用しています...これが機能しない理由は何ですか?

4

1 に答える 1

2

コードは近いですが、まだ十分ではありません!

  1. 認証オブジェクトを取得していますが、実際にはクライアントに渡していません (nil に設定しています)。
  2. クライアント シークレットを API キーとして渡しているようで、問題が発生します。これらの API キーは、API コンソールからの「単純な API アクセス」キー用です。oAuth 2.0 トークンを使用している場合は、何も渡す必要はありません。必要に応じて、サーバーの単純な API キーを渡すことができます。これは実際には、別のプロジェクトのアクセス トークンの誤った使用をキャッチするため、便利ですが、必須ではありません。
  3. plus.people.get にコレクション引数を指定する必要はありません。

さらに、API コンソールのサービスで Google+ API が有効になっていることを確認してください: http://developers.google.com/+

于 2013-05-29T13:09:19.727 に答える