google oauth命令行示例中的user_id是什么?

时间:2017-01-25 19:56:19

标签: ruby oauth-2.0 youtube-api google-oauth2

在这个例子中,user_id应该来自哪里?

使用此处的命令行示例: https://github.com/google/google-auth-library-ruby

我只是通过删除'/ path / to /'来更改示例,并且在我的工作目录中有一个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。该网址将我带到同意屏幕。在我接受之后,我给了一个代码来插回终端。

然后我收到错误:

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

...因为很明显没有定义user_id,但我从哪里得到它?

或者,是否有一个更好的,更新的或更好的oauth 2.0库,我应该将Ruby与所有的youtube apis结合使用?

2 个答案:

答案 0 :(得分:2)

对于其他任何想知道我相信你可以安全设置的人     USER_ID = '默认' https://developers.google.com/google-apps/calendar/quickstart/ruby

如果用户被重定向到authorizer,则会向用户显示“选择帐户”对话框.get_authorization_url

答案 1 :(得分:1)

user_id应该是点击该链接的人的电子邮件地址。