无法从应用引擎访问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&passive=true&nui=1&continue=http%3A%2F
%2Fdocs.google.com%2Ffeeds%2Fdocuments%2Fprivate%2Ffull%3Ftitle
%3Deleanor&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应用程序了。
文档正在将您重定向到登录页面。在尝试获取电子表格之前,您需要进行身份验证。不过,我不确定为什么它不要求您在开发服务器上进行身份验证。
您可能必须无限制地访问电子表格。你没有共享,所以每个人都可以查看它。
可阅读关于分享here。
忍者编辑:
我不知道,你可以直接从应用程序引擎访问电子表格。谷歌还有一些关于如何使用Google Spreadsheets over here进行身份验证的信息。你检查过你的本地环境的版本吗?也许这是你的开发环境尚未找到的新东西?
是的,这是我在两个月前用来设置我的应用程序的链接,直到两天前谷歌做了一些事情(我没有改变我的软件中的任何东西)才破解它。 – 2009-10-29 23:20:16
我的意思是指向“使用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”的链接,谷歌将不会尝试进行身份验证重定向。
谢谢,但是,是的。我做了整个认证位:授权,获取令牌,更新令牌。我仔细检查了我的Google帐户,实际上,我的应用具有“Google文档”访问权限(您可以在Google帐户中查看这些内容)。 这是所有工作几天前,然后谷歌改变了一些打破认证(如果这是问题)。我试图明显:撤销访问,然后重新授予它,但没有去。 任何Google应用引擎员工阅读本网站? – 2009-10-29 23:19:14
不过,看起来很奇怪,他们会将“暂时移动”返回给未经授权的请求。如果我真的没有被授权,那么让他们回复401“需要授权”或者至少404是更合理的,你不觉得吗? – 2009-10-29 23:31:19
这是面向用户请求的常用方法:身份验证由另一个服务处理,因此该站点必须返回302以将用户的浏览器发送到身份验证页面。不过,我不确定它为什么在API网址上这么做。 – 2009-10-30 08:12:41