Не удается получить доступ к электронной таблице Google из движка приложения: "Временно переехал"? - PullRequest
2 голосов
/ 29 октября 2009

По состоянию на пару дней назад я смог получить доступ к моим таблицам Google из приложения (в движке приложения), но сегодня оно не работает.

А именно, я мог бы

name= "name of my spreadsheet"
self.client = gdata.spreadsheet.text_db.DatabaseClient()
self.client.GetDatabases(name=name)

и это сработало. На самом деле, это все еще работает, когда я бегу с dev_appserver

Но если происходит сбой, когда на движке приложения. Он говорит, что не может разобрать XML.

Я добавил несколько отпечатков в код gdata и обнаружил, что он не может разобрать его, потому что он думал, что XML на самом деле был просто HTML страница входа.

Что сейчас происходит, так это то, что библиотека gdata python выполняет («Элеонора» - это имя таблицы)

GET /feeds/documents/private/full?title=eleanor

и возвращается

<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://www.google.com/accounts/
ServiceLogin?
service=writely&amp;passive=true&amp;nui=1&amp;continue=http%3A%2F
%2Fdocs.google.com%2Ffeeds%2Fdocuments%2Fprivate%2Ffull%3Ftitle
%3Deleanor&amp;followup=http%3A%2F%2Fdocs.google.com%2Ffeeds
%2Fdocuments%2Fprivate%2Ffull%3Ftitle%3Deleanor">here</A>.
</BODY>
</HTML>

но тот же самый GET при выполнении локально на dev_appserver.py возвращает правильный XML:

<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/
2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'
xmlns:docs='http://schemas.google.com/docs/2007' xmlns:batch='http://
schemas.google.com/gdata/batch' xmlns:gd='http://schemas.google.com/g/
2005'><id>http://docs.google.com/feeds/documents/private/full</
id><updated>2009-10-29T19:14:07.401Z</updated><category scheme=......

Я дважды проверил и, да, мое приложение авторизовано для доступа к Google Docs.

Итак, что случилось с «Временно перемещенным». Это временная проблема в googleplex или какая-то проблема с аутентификацией?

Ответы [ 4 ]

3 голосов
/ 29 октября 2009

Docs перенаправляет вас на страницу входа. Вам нужно пройти проверку подлинности, прежде чем пытаться получить электронную таблицу. Однако я не уверен, почему он не требует от вас аутентификации на сервере dev.

1 голос
/ 14 июля 2011

Проверьте мой ответ на http://blog.forret.com/2011/07/google-docs-infamous-moved-temporarily-error-fixed/

Если вы добавите «& ndplr = 1» к ссылке, Google не будет пытаться перенаправить для аутентификации.

1 голос
/ 29 октября 2009

Вы, вероятно, должны иметь неограниченный доступ к электронной таблице. У вас нет общего доступа, чтобы все могли его просматривать.
Можете прочитать о совместном использовании здесь .

Ниндзя Редактировать:
Я не знал, что вы можете получить доступ к электронной таблице напрямую из app-engine. У Google также есть некоторая информация о том, как пройти аутентификацию в таблицах Google здесь . Вы проверили версию вашей локальной среды? Может быть, это что-то новое, что ваша среда разработки еще не освоила?

0 голосов
/ 30 октября 2009

Хорошо, теперь это работает. Google исцелил себя.

Чтобы было ясно, я ничего не изменил в своем коде, и проблема ушла. Должно быть, это была временная ошибка в Google.

Я надеюсь, что такого рода ошибки будут действительно редкими, так как они разрушают мое веб-приложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...