Получить токен обновления с помощью lib google-drive-ruby
Из статьи: https://github.com/gimite/google-drive-ruby/blob/master/doc/authorization.md
Код:
credentials = ... same as above ...
credentials.code = authorization_code
credentials.fetch_access_token!
затем
Если вы хотите восстановить сеанс после этого, вы можете сохранить credentials.refresh_token после credentials.fetch_access_token!
Но после credentials.fetch_access_token! credentials.refresh_token - ноль
Как я могу получить refresh_token? Или сохранить учетные данные в базу данных в следующий раз?
1 ответ
Нужно добавить дополнительные_параметры:
require "googleauth"
credentials = Google::Auth::UserRefreshCredentials.new(
client_id: "YOUR CLIENT ID",
client_secret: "YOUR CLIENT SECRET",
scope: [
"https://www.googleapis.com/auth/drive",
"https://spreadsheets.google.com/feeds/",
],
redirect_uri: "http://example.com/redirect",
:additional_parameters => {
"access_type"=>"offline",
"include_granted_scopes"=>"true",
"prompt" => "consent"
}
)
auth_url = credentials.authorization_uri
credentials.code = authorization_code
credentials.fetch_access_token!
тогда получите:
refresh_token = credentials.refresh_token
и затем refresh_token можно сохранить в базе данных и использовать позже:
credentials.refresh_token = refresh_token
credentials.fetch_access_token!
session = GoogleDrive::Session.from_credentials(credentials)