无法从应用引擎访问Google电子表格:“暂时移动”?

问题描述:

由于几天前,我能够从一个应用程序(App Engine中)访问我的谷歌电子表格 ,但今天它被打破了。无法从应用引擎访问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库做的是 (“埃莉诺”是电子表格名称)

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> 

但是,同样得上当在本地运行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=...... 

我再次检查,是的,我的应用程序有权访问谷歌 文档。

那么,这是怎么回事的“临时转移”。这是googleplex的暂时性问题,还是一些身份验证问题?

好吧,它现在的作品。谷歌已经治好了自己。

要清楚,我没有在我的代码修改,然后问题消失。 Google一定是一个短暂的错误。

我希望这些类型的错误将是真是难得,因为他们把我的整个web应用程序了。

文档正在将您重定向到登录页面。在尝试获取电子表格之前,您需要进行身份验证。不过,我不确定为什么它不要求您在开发服务器上进行身份验证。

+0

谢谢,但是,是的。我做了整个认证位:授权,获取令牌,更新令牌。我仔细检查了我的Google帐户,实际上,我的应用具有“Google文档”访问权限(您可以在Google帐户中查看这些内容)。 这是所有工作几天前,然后谷歌改变了一些打破认证(如果这是问题)。我试图明显:撤销访问,然后重新授予它,但没有去。 任何Google应用引擎员工阅读本网站? – 2009-10-29 23:19:14

+0

不过,看起来很奇怪,他们会将“暂时移动”返回给未经授权的请求。如果我真的没有被授权,那么让他们回复401“需要授权”或者至少404是更合理的,你不觉得吗? – 2009-10-29 23:31:19

+0

这是面向用户请求的常用方法:身份验证由另一个服务处理,因此该站点必须返回302以将用户的浏览器发送到身份验证页面。不过,我不确定它为什么在API网址上这么做。 – 2009-10-30 08:12:41

您可能必须无限制地访问电子表格。你没有共享,所以每个人都可以查看它。
可阅读关于分享here

忍者编辑:
我不知道,你可以直接从应用程序引擎访问电子表格。谷歌还有一些关于如何使用Google Spreadsheets over here进行身份验证的信息。你检查过你的本地环境的版本吗?也许这是你的开发环境尚未找到的新东西?

+0

是的,这是我在两个月前用来设置我的应用程序的链接,直到两天前谷歌做了一些事情(我没有改变我的软件中的任何东西)才破解它。 – 2009-10-29 23:20:16

+0

我的意思是指向“使用Google App Engine检索经过身份验证的Google数据Feed”教程的链接。那是我用过的那个。 – 2009-10-29 23:21:11

检查我的http://blog.forret.com/2011/07/google-docs-infamous-moved-temporarily-error-fixed/

答案如果您添加“& ndplr = 1”的链接,谷歌将不会尝试进行身份验证重定向。