2015-07-22 7 views
1

Использовал gdata для обновления файла электронной таблицы на моем диске с помощью python на appengine. Все работает нормально до недавнего времени, код начал сталкиваться с ошибкой.Ошибка авторизации в таблице gdata

import webapp2 
import gdata.spreadsheet.text_db 
from google.appengine.api import mail 


client = gdata.spreadsheet.text_db.DatabaseClient(username='[email protected]', password='passsword') 

class createSurvey(webapp2.RequestHandler): 
    def get(self): 
     db = client.CreateDatabase("Project")// this line started to show the error below. 

.

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    db = client.CreateDatabase("Project") 
    File "C:\Python27\lib\gdata\spreadsheet\text_db.py", line 146, in CreateDatabase 
    db_entry = self.__docs_client.UploadSpreadsheet(virtual_media_source, name) 
    File "C:\Python27\lib\atom\__init__.py", line 1475, in deprecated_function 
    return f(*args, **kwargs) 
    File "C:\Python27\lib\gdata\docs\service.py", line 466, in UploadSpreadsheet 
    folder_or_uri=folder_or_uri) 
    File "C:\Python27\lib\gdata\docs\service.py", line 161, in _UploadFile 
    converter=gdata.docs.DocumentListEntryFromString) 
    File "C:\Python27\lib\gdata\service.py", line 1236, in Post 
    media_source=media_source, converter=converter) 
    File "C:\Python27\lib\gdata\service.py", line 1358, in PostOrPut 
    'reason': server_response.reason, 'body': result_body} 
RequestError: {'status': 401, 'body': '<HTML>\n<HEAD>\n<TITLE>Authorization required</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Authorization required</H1>\n<H2>Error 401</H2>\n</BODY>\n</HTML>\n', 'reason': 'Authorization required'} 

Первоначально думали, что это ограничение на файл, но я сделал его открытым и до сих пор не работает. Как я могу это исправить .

+1

Вы видели это? https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3851#c2 Неправильно использовать ваши учетные данные в исходном коде таким образом. –

+0

Да, у меня есть. Сделал это так ради этого вопроса. –

+0

Так не отвечает ли на ваш вопрос вопрос? Или это не работает с oAuth2? –

ответ

2

Google прекратил использование такого метода аутентификации. Разработчикам необходимо создать учетные данные на консоли Google. see this for more help, и если вы используете Google Data Protocol для доступа к справочной системе, используйте таблицу как db, как я пытался сделать, This также должен помочь.