Интеграция Google Plus с Rails

У меня уже есть часть входа в систему (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

Вот проблема, с которой я продолжаю сталкиваться (из консоли rails)

    #<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... по какой причине это не сработает?


person dennismonsewicz    schedule 28.05.2013    source источник


Ответы (1)


Код близко, но не совсем там!

  1. Вы получаете объект авторизации, но на самом деле не передаете его своему клиенту (вы устанавливаете его равным нулю).
  2. Похоже, вы передаете свой клиентский секрет в качестве ключа API, что вызовет проблемы. Ключ API предназначен для ключа «простого доступа к API» из консоли API — вам не нужно ничего передавать, если вы используете токен oAuth 2.0. Если хотите, вы можете передать простой ключ API сервера. Это на самом деле улавливает неправильное использование токенов доступа для другого проекта, поэтому может быть удобным, но не обязательным.
  3. Вам не нужно указывать аргумент коллекции для plus.people.get

Кроме того, убедитесь, что API Google+ включен в разделе «Службы» в консоли API: http://developers.google.com/+

person Ian Barber    schedule 29.05.2013