2017-01-25 7 views
0

Где пользователь user_id должен появиться в этом примере?Что такое user_id в примере командной строки google oauth?

Используя пример командной строки здесь: https://github.com/google/google-auth-library-ruby

Я только изменил пример, удалив «/ путь/к /» и есть client_secrets.json в моем рабочем каталоге.

require 'googleauth' 
require 'googleauth/stores/file_token_store' 

OOB_URI = 'urn:ietf:wg:oauth:2.0:oob' 

scope = 'https://www.googleapis.com/auth/drive' 
client_id = Google::Auth::ClientId.from_file('client_secrets.json') 
token_store = Google::Auth::Stores::FileTokenStore.new(
    :file => 'tokens.yaml') 
authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store) 

credentials = authorizer.get_credentials(user_id) 
if credentials.nil? 
    url = authorizer.get_authorization_url(base_url: OOB_URI) 
    puts "Open #{url} in your browser and enter the resulting code:" 
    code = gets 
    credentials = authorizer.get_and_store_credentials_from_code(
    user_id: user_id, code: code, base_url: OOB_URI) 
end 

Выполнение этого кода печатает URL-адрес для подключения к моему браузеру. URL-адрес меня отображает на экране согласия. После того, как я согласен, мне предоставлен код для подключения к терминалу.

Тогда я получаю сообщение об ошибке:

NameError: undefined local variable or method `user_id' for main:Object 

... потому что, очевидно, user_id не определен, но где его взять?

В качестве альтернативы, есть ли лучшая, более новая или лучше документированная библиотека oauth 2.0, которую я должен использовать для Ruby в сочетании со всем apt youtube?

ответ

1

user_id следует указать адрес электронной почты человека, который нажмет на ссылку.

2

Для тех, кто еще, что интересно, я считаю, что вы можете безопасно установить user_id = «по умолчанию» https://developers.google.com/google-apps/calendar/quickstart/ruby

Это представит пользователю «выбрать учетную запись» диалог, если пользователь перенаправляется на авторизатор. get_authorization_url