Google Drive SDK

Quickstart: Run a Drive App in Python

Complete the steps described in the rest of this page, and in about five minutes you'll have a simple Drive app that uploads a file to Google Drive. If you like, you can view a video of Google engineers guiding you through the steps.

To run a quickstart example you'll need:

  • Access to the internet and a web browser, in order to authorize the sample app.
  • A Google account with Drive enabled.
  • An environment to run programs in your selected language.

Step 1: Enable the Drive API

If you haven't already registered your application with the Google Developers Console, then set up a project and application in the Developers Console. The system guides you through the process of choosing or creating a project and registering a new application, and it automatically activates the API for you.

If you've already registered your application with the Developers Console, then follow this procedure instead:

  1. Go to the Google Developers Console.
  2. Select a project.
  3. In the sidebar on the left, select APIs & auth. In the list of APIs, make sure the status is ON for the Drive API.
  4. In the sidebar on the left, select Credentials.

In either case, you end up on the application's credentials page.

To find your application's client ID and client secret, and set a redirect URI, expand the OAuth 2.0 Client ID section.

Take note of the Client ID as you'll need to add it to your code later.

Step 2: Install the Google Client Library

To install the Google API Python Client on a system, you must use either the pip command or easy_install command.

easy_install --upgrade google-api-python-client

pip install --upgrade google-api-python-client

If you need to access the Google API Python Client from a Google App Engine project, you can follow the instructions here.

Step 3: Set up the sample

You'll need to create two files: a test file to upload to Drive (in this case document.txt), and the given sample code, modified to include the unique Client ID and Client Secret you created in the "Enable the Drive API" step.

  1. Create a text file named document.txt, containing the text Hello world!. The file must be in the same location as the source code you paste from below.
  2. After following the directions below to copy source code, replace YOUR_CLIENT_ID with the Client ID you generated in the "Enable the Drive API" step.
  3. Replace YOUR_CLIENT_SECRET with your Client Secret, also generated previously.

Copy the following source code to quickstart.py.

#!/usr/bin/python

import httplib2
import pprint

from apiclient.discovery import build
from apiclient.http import MediaFileUpload
from oauth2client.client import OAuth2WebServerFlow


# Copy your credentials from the console
CLIENT_ID = 'YOUR_CLIENT_ID'
CLIENT_SECRET = 'YOUR_CLIENT_SECRET'

# Check https://developers.google.com/drive/scopes for all available scopes
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive'

# Redirect URI for installed apps
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'

# Path to the file to upload
FILENAME = 'document.txt'

# Run through the OAuth flow and retrieve credentials
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: ' + authorize_url
code = raw_input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)

# Create an httplib2.Http object and authorize it with our credentials
http = httplib2.Http()
http = credentials.authorize(http)

drive_service = build('drive', 'v2', http=http)

# Insert a file
media_body = MediaFileUpload(FILENAME, mimetype='text/plain', resumable=True)
body = {
  'title': 'My document',
  'description': 'A test document',
  'mimeType': 'text/plain'
}

file = drive_service.files().insert(body=body, media_body=media_body).execute()
pprint.pprint(file)

Step 4: Run the sample

After you have set up your Google API project, installed the Google API client library, and set up the sample source code, the sample is ready to run. When you run the sample from command-line, it provides a link you'll need to visit in order to authorize.

Run the sample using python quickstart.py.

  1. Browse to the provided URL in your web browser.
  2. If you are not already logged into your Google account, you will be prompted to log in. If you are logged into multiple Google accounts, you will be asked to select one account to use for the authorization.
  3. Copy the code you're given after browsing to the link, and paste it into the prompt Enter authorization code:. Click Enter.

When you finish these steps, the sample prints information about the Google Drive file to the screen. The file document.txt is accessible in Google Drive, and is titled "My Document".

By editing the sample code to provide paths to new files and new titles, you can run a few more simple upload tests. When you're ready, you could try running some other Drive API methods such as files.list.

Optional: View a quickstart video

Videos that cover the setup and running of each quickstart sample in detail. If you'd like to see the Python quickstart sample demonstrated by some of the same developers who wrote it, click play, sit back, and enjoy.

Next Steps

If your goal is to let users create and open files directly from the Drive UI using your app, see Integrate with the Drive UI. Our end-to-end Example Apps demonstrate a simple Drive UI-integrated web app.

If your goal is to expand the quickstart sample into something for your own installed application, consult the API Reference. The API Reference discusses all of the features of the Drive API, and gives samples in each language on how to use a feature.

All requests to the Drive API must be authorized by an authenticated user. To examine more authorization code and learn how to authorize requests, see Authorizing Your App with Google Drives.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.