 <p>You created a service account but it looks like you're trying to access it using a client flow.</p> <p>Have a look at the service account documentation here: <a href="https://developers.google.com/identity/protocols/OAuth2ServiceAccount" rel="nofollow">https://developers.google.com/identity/protocols/OAuth2ServiceAccount</a></p> <p>The first step would be to go back to the developer console and generate a p12 key. Then the basic flow for Python looks like this:</p> <pre><code>from oauth2client.client import SignedJwtAssertionCredentials scope = 'https://www.googleapis.com/auth/drive.readonly https://spreadsheets.google.com/feeds' client_email = '&lt;your service account email address&gt;' with open("MyProject.p12") as f: private_key = f.read() credentials = SignedJwtAssertionCredentials(client_email, private_key, scope) http_auth = credentials.authorize(Http()) </code></pre>