由於幾天前,我能夠從一個應用程序(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帳戶,實際上,我的應用具有「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