Ich habe eine Anwendung Ruby on Rails und ich versuche, meine App in Google zu autorisieren, aber ich bekomme immer uninitialized constant
autorisieren Google OAuth2
Ich versuchte Google::Auth::Stores::TokenStore
und Google::APIClient::InstalledAppFlow
I Proben gefolgt Thesen zu verwenden https://github.com/google/google-auth-library-ruby#example-command-line und https://developers.google.com/youtube/v3/code_samples/ruby?hl=pt-br#upload_a_video
Eine Verwendung googleauth
und andere google-api-client
.
In meinem Gemfile
gem 'google-api-client', '0.8.2', require: 'google/api_client' gem 'googleauth'
In meinem Code
Mit erstem Beispiel
def authorization
client_id = Google::Auth::ClientId.from_file './client_secrets.json'
scope = ['SCOPE']
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
end
zweites Beispiel Mit
def authorization
file_storage = Google::APIClient::FileStore.new(oauth2)
if file_storage.authorization.nil?
client_secrets = Google::APIClient::ClientSecrets.load
flow = Google::APIClient::InstalledAppFlow.new(
client_id: client_secrets.client_id,
client_secret: client_secrets.client_secret,
scope: [YOUTUBE_UPLOAD_SCOPE]
)
client.authorization = flow.authorize(file_storage)
else
client.authorization = file_storage.authorization
end
end
Was ist die vollständige Fehlermeldung? Auf welcher Linie tritt es auf? Ist es für beide Authentifizierungsflüsse dasselbe? – whodini9
der Fehler ist 'nicht initialisierte Konstante Google :: Auth :: Stores :: TokenStore' und' nicht initialisierte Konstante Google :: APIClient :: InstalledAppFlow' Der Fehler wird ausgelöst, wenn ich diese Klassen aufrufen, weil es nicht gefunden, aber Ich habe den Edelstein installiert. –
Benötigen Sie diese in der Datei/Controller, wo "Autorisierung" definiert ist? – whodini9