6
votes

Is there a way to use the Google Drive API's from Google Apps Script. I am aware of the DocsList Service, which allows you to look at folders and files , however what about all the other API's in Google Drive (Files,About,Changes,Children,Parents,Permissions,Revisions,Apps,Comments,Replies). For example, is there API access to add Comments to files from Google Apps Script.

4
Mogsdad, as you can most likely see from my previous questions, I have accepted answers to questions in the past and know how to do that. However in this case, you did not answer my question. I wrote in my question above, that "I am aware of DocsList", however your answer refers me to DocsList.File. This class does not allow you to post to All of the other Drive elements inclusive of Comments and others.Brian

4 Answers

3
votes

Apps Script has the ability to access Google API's, but you need to explicitly enable them before they can be used.

In the code editor, choose RESOURCES, ADVANCED GOOGLE SERVICES

Advanced Google Services

Click the OFF button, to turn the service ON.

Before you close the dialog box, click the link at the bottom to open up the API Manager.

API Manager

Once you've completed those two steps, the Drive API is available inside of Apps Script. Type the key word Drive then type a period, and available methods will show up in a list.

Methods

  • get - Gets a file's metadata by ID.
  • insert - Insert a new file.
  • patch - Updates file metadata. This method supports patch semantics.
  • update - Updates file metadata and/or content.
  • copy - Creates a copy of the specified file.
  • delete - Permanently deletes a file by ID. Skips the trash.
  • list - Lists the user's files.
  • touch - Set the file's updated time to the current server time.
  • trash - Moves a file to the trash
  • untrash - Restores a file from the trash.
  • watch - Start watching for changes to a file.
  • emptyTrash - Permanently deletes all of the user's trashed files.

https://developers.google.com/drive/v2/reference/files#methods

2
votes

(Google-Apps-Script=GAS) Drive Services added 2013.05.13 (to be announced at the 2013 Google I/O 2 days later) is apparently-exactly designed to replace the prior API(DocsList) and allow GAS to access the Google Drive SDK, though that functionality is currently not mentioned (why?) from those official docs but it is most certainly suggested by the new new API name "Drive" and is stated at as the purpose by Google's great demo video "Integrate Google Drive with Google Apps Script — Google I/O 2013" and "Drive SDK" is mentioned in by the search functions as searchFiles(String).

And Drive Services works (I'm using it; and though I could think of many improvements, haven't found any bugs of memory) including it works for useful apps (see the the video above for one of the most impressive ones I've seen) but it isn't complete (including doesn't expose the full Drive SDK) including:

  1. it doesn't (yet?) allow one to access prior versions of content (as that vide plus (the enhancement request: Google Search for "Issue 2811: Access the document revisions using DriveApp"),
  2. control the indexing status & method of content,
  3. one can't get a list of a file or folder's accessors (apparently deliberately says the video; but using the prior DocsList or Library mentioned seems like it would be a workaround).

I'd have included more links to help out but I'm a new poster here so the editor's telling me "You need at least 10 reputation to post more than 2 links.".

0
votes

Yes, it's possible.

Take a look at the documentation for Class File, which includes functions for obtaining and/or changing most of the attributes you've listed.

For an example of code that gets some of this info for files and folders, see this answer.

0
votes

You should also have a look at this Library written by Romain Vialard, one of the GAS TC.

It provides functions that are not available directly in gas or - at least - not as simply.