Complete the steps described in the rest of this page to create a simple Pythoncommand-line application that makes requests to the Gmail API.
Sent messages are automatically copied to the Gmail/Sent folder if your email client uses SMTP. Save draft messages on the server if you want your drafts to show when you open Gmail on the web. Don't save deleted messages on the server. You can find messages you delete from an IMAP folder in your 'All Mail' label in Gmail. Business Starter: 30 GB of shared storage across Drive and Gmail for each user. Includes all of Google’s productivity apps but lacks Cloud Search (ability to search across your entire company’s content in Google Workspace), App Maker (build custom apps for your business ), and Vault (data retention and eDiscovery for Google Workspace).
Prerequisites
To run this quickstart, you'll need:
- Python 2.6 or greater
- The pip package management tool
- A Google account with Gmail enabled
Step 1: Turn on the Gmail API
Click this button to create a new Cloud Platform project and automaticallyenable the Gmail API:
In resulting dialog click DOWNLOAD CLIENT CONFIGURATION and save the filecredentials.json
to your working directory.Gmail On Macbook Pro
Step 2: Install the Google Client Library
Run the following command to install the library using pip:
See the library's installationpage for the alternativeinstallation options.
Step 3: Set up the sample
Create a file named quickstart.py
in your working directory and copy in thefollowing code:
Step 4: Run the sample
Run the sample using the following command:
The sample will attempt to open a new window or tab in your defaultbrowser. If this fails, copy the URL from the console and manually open it inyour browser.
If you are not already logged into your Google account, you will beprompted to log in. If you are logged into multiple Google accounts, you willbe asked to select one account to use for the authorization.
- Click the Accept button.
- The sample will proceed automatically, and you may close the window/tab.
Notes
- Authorization information is stored on the file system, so subsequentexecutions will not prompt for authorization.
- The authorization flow in this example is designed for a command-lineapplication. For information on how to perform authorization in a webapplication, seeUsing OAuth 2.0 for Web Server Applications.
Troubleshooting
This section describes some common issues that you may encounter whileattempting to run this quickstart and suggests possible solutions.
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'
This error can occur in Mac OSX where the default installation of the six
module (a dependency of this library) is loaded before the one that pipinstalled. To fix the issue, add pip's install location to the PYTHONPATH
system environment variable:
Determine pip's install location with the following command:
Add the following line to your
~/.bashrc
file, replacing<pip_install_path>
with the value determined above:Reload your
~/.bashrc
file in any open terminal windows using the followingcommand:
Gmail On Mac Not Working
TypeError: sequence item 0: expected str instance, bytes found
This error is due to a bug in httplib2
, and upgrading to the latest versionshould resolve it:
Gmail On Macbook
Cannot uninstall 'six'. It is a distutils installed project...
Gmail On Mac Mail
When running the pip install
command you may receive the following error:
This can happen on Mac OSX when pip attempts to upgrade the six
package thatcame pre-installed. To work around this issue you can add the flag--ignore-installed six
to the pip install
command listed in Step 2.
This app isn't verified.
The OAuth consent screen that is presented to the user may show the warning'This app isn't verified' if it is requesting scopes that provide access tosensitive user data. These applications must eventually go through theverification process toremove that warning and other limitations. During the development phase you cancontinue past this warning by clickingAdvanced > Go to {Project Name} (unsafe).