在这个例子中,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 库,我应该与所有 youtube API 结合使用 Ruby?
对于其他任何想知道的人,我相信您可以安全地设置 user_id='默认'https://developers.google.com/google-apps/calendar/quickstart/ruby
如果用户被重定向到authorizer.get_authorization_url,这将向用户显示"选择帐户"对话框
user_id
应该是单击链接的人的电子邮件地址。