Access to all files on a user's Google Drive - google-drive-api

The api's for SkyDrive and Dropbox have options for managing the user's entire drive. For Google Drive, the drive.file scope seems to give only access to the files created by the app.
Is there a scope for Google Drive that gives access to the entire drive?

Edit: The below answer was correct, but the latest version of the Drive API allows requesting of a full scope with https://www.googleapis.com/auth/drive. The Documents List API is no longer needed for this use case. See https://developers.google.com/drive/scopes#requesting_full_drive_scope_for_an_app
To be precise the Drive API gives access to Files created by the app and files that the user has opened with the app from the Drive UI (through open-with).
To manipulate all of the Drive files of the user you can use the Google Document List API . Though we currently forbid Drive applications (the ones that have get integrated in the Drive UI through the Open-with and Create dialogs) to request access to the Document List API as we want to keep Drive application on a per-file security model. (Basically adding the Document List scope in the Drive SDK settings raises an error).

Related

Google Drive integration with private website

I would like to integrate Google Drive with my private website in such way that user will provide my website with his own Google Drive, and he could perform on my website such actions as: viewing, deleting, adding or editing files. Is is possible? What is needed to do such integration?
I read Google Drive API documentation and I checked it is possible to perform such actions as creating, reading, editing files. But I have no idea how to perform it on someones else private Google Drive.
The first thing you need to understand is that drive api is a rest api the response is returned in Json format. The google drive api is not going to give you any visual representation of a users drive account. For example your not going to be able to show them the google drive web application from your website. You will need to code the interface yoruself.
As for how to get permission we use something called Oauth2 to request consent for your application to access the users google drive account. It can be a little confusing in the beginning but there are a number of tutorials and QuickStart's which should help you get started.

How to correctly setup google drive API to access single google account's google drive?

I required to use google drive API to save and get image from company google drive.
I'm following this guide to get the token and currently successfully get the image via postman.
Because I'm using ./auth/drive scope, it required me to verify my application.
But I'll only use create and view api to access single google account. I'm not sure if I'm doing the things correctly.
It is possible to setup similar thing for one personal google account only so that it doesn't required to get the approval?

Google Drive API grant access to another/multiple Apps

Currently, we have a mobile App that is storing data into a Google Drive folder using the scope
https://www.googleapis.com/auth/drive.file
View and manage Google Drive files and folders that you have opened or created with this app
Now we are planning to add a web app as well. The problem is, that the web app cannot access files uploaded by the mobile app and vice versa.
So is there a way to tell the Google Drive API that those two apps (web app and the mobile app) are in fact the 'same' application?
I want to avoid using the scope for full access to the user's Google Drive.
https://www.googleapis.com/auth/drive
Or is there another way that both apps can read/write the same folder?
Thanks in advance.
I also took a look at the Google Picker API but it does not seem to be what I want.
Posting this for documentation purposes.
As mentioned in comments, both apps should be part of the same Google Cloud Platform project, that's the only way to "tell" the API that they are the same application.
If they are not part of the same project, you should use the drive scope instead.

Google Drive API: Allows you to upload/download to users accounts or only your own?

I have a question about Google Drive that I'm hoping other programmers (with experience with the Google Drive API) will be able to answer. Note I have consulted the Google Drive API faqs and example projects but they dont answer my question. I'll provide some context in order for you to better understand my question.
We are developing an Smart Phone app that will allow people to view their civil engineering designs (Highway design, Dam design, Railway design, etc) in a 3d world, ie, showing their 'blue prints' in 3d. The app is being developed in Unity3d (3d Game Engine using C#).
Our plan is to create a Windows .exe (C# WinForms) that will allow the user to upload their blue print file to their own Google Drive account. The app will automatically download their blue prints from their google drive account (all the user has to do is login). Why create a .exe to upload files to a users account and not just get them to do it themselves through a web browser? Because we want to make it easy for the user, eventually provide automatic uploads/updates (when the user edits their project) and ensure that the files will always be in a specific folder on google drive. Thus a .exe will be able to achieve this.
My Question: Does the Google Drive API allow you to upload/download files to a users account. The Drive example projects appear to demonstrate uploading/downloading files to your own business Google Drive account and not a users. For those who have used the Google Drive API in their own projects; what are you charged for? Do you get charged for only downloading and uploading files or do you also get charge for connecting and querying files? If you upload/download files to an external Google Drive account (a users account) do you get charged or do they get charged?
If you have the users login to your app using Oauth2 they give you permission to access there google drive data. They can then download and upload to there account from your app.
Here are a few tutoials i did on this topic. Its a popular question, im working on a few sample apps to go with it.
Google Oauth2 c# Tutorial
Google Drive api C#
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = "YourClientId", ClientSecret = "YourClientSecret" },
new[] { DriveService.Scope.Drive,
DriveService.Scope.DriveFile },
"user",
CancellationToken.None,
new SavedDataStore(myStoredResponse)).Result; }

Google Drive Sdk sharing permissions

I have a question about google drive sdk php
Can google drvie sdk change sharing permissions of many files with php?
I have read the document, but just find the way changing sharing permissions of one file with javascript.
The Google Drive SDK documentation includes PHP samples for all methods, including those for managing sharing, e.g. https://developers.google.com/drive/v2/reference/permissions/insert