2012-04-12 57 views
2

如何使用Google文檔API的Python客戶端查詢特定集合的內容? 這是多遠我來:用於Google文檔API的Python客戶端查詢集合內容

client = gdata.docs.service.DocsService() 
client.ClientLogin('myuser', 'mypassword') 

FOLDER_FEED1 = "/feeds/documents/private/full/-/folder" 
FOLDER_FEED2 = "/feeds/default/private/full/folder%3A" 

feed = client.Query(uri=FOLDER_FEED1 + "?title=MyFolder&title-exact=true") 
full_id = feed.entry[0].resourceId.text 
(res_type, res_id) = full_id.split(":") 

feed = client.Query(uri=FOLDER_FEED2 + res_id + "/contents") 

for entry in feed.entry:. 
    print entry.title.text 

第一次調用Client.Query成功,似乎提供了一個有效的資源ID。第二個電話,然而,返回:

{'status': 400, 'body': 'Invalid request URI', 'reason': 'Bad Request'} 
  • 我怎樣才能糾正這種得到它的工作?

回答

1

一旦你有一個文件夾條目,要調用client.GetResources(entry.content.src),而不是自己生成URI並使用查詢,它會容易得多。

對你而言,client.GetResources(feed.entry[0].content.src)

+0

感謝您的反饋。 GetResources()似乎是類「DocsClient」的一種方法,而不是我目前使用的類「DocsService」。我想我有兩個問題:1)你如何共享這兩個對象之間的狀態(即授權),以便你可以首先執行Query(),並按照你的建議繼續使用GetResources()2)什麼是DocsClient和DocsService是不同的類的原因,即什麼是關係,什麼時候應該使用這些類中的任何一個? – Irwin 2012-04-15 11:09:48

+0

您不應該使用DocsService,它已被棄用且不受支持。我強烈建議你移過去。 – 2012-04-15 15:36:25

+0

謝謝阿里,這是有用的信息。也許你可以在文檔中的某處提到它? – Irwin 2012-04-15 20:30:28

相關問題