2

У меня уже есть часть входа (OAuth), работающая с моим приложением, то, что я пытаюсь сделать сейчас, это вытащить список активности аутентифицированных пользователей (например, фид состояния).Интеграция Google Plus с рельсами

Пользователь имеет возможность вытащить этот список вниз после того, как тот факт, из них с проверкой подлинности и вот мой код, до сих пор:

# 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 ... никаких причин, почему это не будет работать?

ответ

2

Код закрыт, но не совсем там!

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

Кроме того, убедитесь, что API Google+ включена под Services в API консоли: http://developers.google.com/+

Смежные вопросы