您好我使用电子邮件A@gmail.com创建了Google服务帐户。 我下载了秘密的json文件并放入了工作目录。 然后使用这种类型的命令初始化和授权api。
scopes = ["https://www.googleapis.com/auth/drive"]
service = Google::Apis::DriveV3::DriveService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = Google::Auth.get_application_default(scopes)
这个阶段的工作是在
之外https://www.googleapis.com/oauth2/v3/token> ;, @ client_id = nil,@ client_secret = nil,@ code = nil,@ expires_at = nil,@ expires_in = nil,@ issued_at = nil, @issuer =" brbr@appspot.gserviceaccount.com" ;, @ password = nil,@ principal = nil,@ redirect_uri = nil,@ scope = [" https://www.googleapis.com/auth/drive" ],@ state = nil,@ username = nil,@ expiry = 60,@ audience =" https://www.googleapis.com/oauth2/v3/token" ;, @ signing_key =#,@ extension_parameters = {},@ additional_parameters = {}>
然后,我按照Google api文档解释的那样运行了以下命令。
response = service.list_files(page_size: 10,
fields: 'nextPageToken, files(id, name)')
puts 'Files:'
puts 'No files found' if response.files.empty?
response.files.each do |file|
puts "#{file.name} (#{file.id})"
end
检索到的唯一文件是"入门"文件,即使我用page_size 10召回。
在谷歌驱动器的电子邮件帐户为A@gmail.com的内部,我创建了几个文件(谷歌文档,谷歌电子表格等),但没有使用上述命令检索它们。
这是因为服务帐户吗?
例如,我的服务帐户电子邮件(client_email)是brbrbrbr ... @ appspot.gserviceaccount.com,这显然与A@gmail.com不同。
请就此问题向我提出任何想法!
最佳