I want to use gspread and since client authentication is outdated, I'm trying with Oauth2. I'm new to both gspread & Oauth2.
Piecing together from this basic Oauth2 example and the gspread documentation I have the most basic login function.
import gspread
from oauth2client.client import OAuth2WebServerFlow
CLIENT_ID = 'my id'
CLIENT_SECRET = 'my secret key'
flow = OAuth2WebServerFlow(client_id= CLIENT_ID,
client_secret= CLIENT_SECRET,
scope='https://docs.google.com/spreadsheets/',
redirect_uri='http://localhost:80')
gc = gspread.authorize(flow)
The problem is that I get this error.
TypeError: 'OAuth2WebServerFlow' object does not support indexing
from the larger
C:\Python34\lib\site-packages\gspread\client.py:73: Warning: ClientLogin is deprecated: https://developers.google.com/identity/protocols/AuthForInstalledApps?csw=1
Authorization with email and password will stop working on April 20, 2015. Please use oAuth2 authorization instead: http://gspread.readthedocs.org/en/latest/oauth2.html
""", Warning) Traceback (most recent call last): File "C:\Users\family\Desktop\mygspread.py", line 13, in gc = gspread.authorize(flow) File "C:\Python34\lib\site-packages\gspread\client.py", line 335, in authorize client.login() File "C:\Python34\lib\site-packages\gspread\client.py", line 105, in login data = {'Email': self.auth[0], TypeError: 'OAuth2WebServerFlow' object does not support indexing
Since both are official scripts - one from google and the other from burnash, I'm not sure what to change. I know the question is basic, but how do I log in with Python 3.4?
You can use OAUTH 2.0 using 2 ways.
Follow here for more details:
Follow this blog for more details
I've figured it out. If anyone else is interested, this is what I needed to do