使用Python客户端库阅读私人Google电子表格

时间:2014-10-28 17:07:50

标签: python python-2.7 google-api google-sheets google-spreadsheet-api

我有一个谷歌电子表格,我想通过谷歌Python客户端阅读。此电子表格是私有的。这是代码:

import gdata  
import gdata.docs  
import gdata.spreadsheet  
import gdata.spreadsheet.service  
client = gdata.spreadsheet.service.SpreadsheetsService()  
client.email = 'xxx.xxx@companyName.com'  
client.password = 'yyyyy'  
client.ProgrammaticLogin()  
spreadsheet_feed = client.GetFeed('http://spreadsheets.google.com/feeds/spreadsheets/private/full')  
first_entry = spreadsheet_feed.entry[0]  
key = first_entry.id.text.rsplit('/')[-1]  
worksheets_feed = client.GetWorksheetsFeed(key)  
for entry in worksheets_feed.entry:  
     print entry.title.text  

这给了我以下错误:

    client.ProgrammaticLogin()
  File "C:\python27\lib\site-packages\gdata\service.py", line 793, in ProgrammaticLogin
    raise BadAuthentication, 'Incorrect username or password'
gdata.service.BadAuthentication: Incorrect username or password

为什么即使用户名/密码正确且用户名在公司域但在Google服务器上呢?

2 个答案:

答案 0 :(得分:1)

您面临的问题是谷歌安全协议。 Google不允许任何不太安全的应用程序连接到您的帐户,这些gdata api使用较少的安全措施,因此如果您想使用这些API连接到您的帐户,则必须启用访问您帐户的安全性较低的应用。转到此链接: https://www.google.com/settings/security/lesssecureapps

答案 1 :(得分:1)

您可以启用"应用专用密码"为你的程序。这是一个仅用于您正在使用的程序的密码。 Google的说明如下:https://support.google.com/accounts/answer/185833?rd=1,但要点是您应该转到https://security.google.com/settings/security/apppasswords并创建新密码。