I am using the Google Drive API for ruby ββand I am trying to insert a file into a user drive. I can insert the file with success, but then when I try to get the Self Link file, this is the URL returned by https://www.googleapis.com/drive/v2/files/1PxrbKaO2xwOonUO0TB0FO3pkZDnSmRKTvIUmXw0vL6w , which says I didnβt exceed the number queries.
Ok, I'm sure I'm authenticated because I followed all the tutorials and the code is almost the same.
Does anyone know why this is happening? Why can I insert this file but cannot view it? Link Link?
Here is the code to create the document on disk after the user permits the application with offline access:
SCOPES = [ 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile' ] class DriveAuthenticator def self.create_document(user, title, description, parent_title, user_array) client = DriveAuthenticator.initiate_client if user.google_id.present? if DriveAuthenticator.authenticate_client client, user parent_id = get_parent_id client, parent_title file_data = insert_empty_file client, title, description, DOCUMENT_MIME_TYPE, parent_id return file_data.selfLink end end end private def self.initiate_client client = Google::APIClient.new(:application_name => 'stuff_app') credentials = Google::APIClient::ClientSecrets.load client.authorization.client_id = credentials.client_id client.authorization.client_secret = credentials.client_secret client.authorization.redirect_uri = credentials.redirect_uris.first client.authorization.scope = SCOPES client end private def self.get_token_by_refresh_token(client, refresh_token) client.authorization.refresh_token = refresh_token client.authorization.grant_type = 'refresh_token' client.authorization.fetch_access_token! end private def self.insert_empty_file(client, title, description, mime_type, parent_id) drive = client.discovered_api('drive', 'v2') file = create_file_schema drive, title, description, mime_type, parent_id result = client.execute( :api_method => drive.files.insert, :body_object => file) if result.status == 200 result.data else puts "An error occurred: #{result.data['error']['message']}" nil end end private def self.create_file_schema(drive, title, description, mime_type, parent_id) file = drive.files.insert.request_schema.new({ 'title' => title, 'description' => description, 'mimeType' => mime_type }) file.parents = [{'id' => parent_id}] file end end