2012-04-07 66 views
5

Sử dụng API tài liệu của Google, tôi đang cố gắng tạo tài liệu mới cũng như cung cấp danh sách tất cả tài liệu hiện tại trong một thư mục cụ thể trong Google Documents của mình. Tôi bắt đầu với sự phát triển python, vì vậy tôi hơi thô ráp xung quanh các cạnh.API Google Documents với Python

Những điều tôi đang cố gắng để làm:

  1. Tạo một bộ sưu tập (hoặc thư mục) với tên [Folder Name] CHỈ nếu đó tên chưa hề tồn tại
  2. Tạo một tài liệu bên trong [Folder Name]
  3. Từ chỉ [Folder Name] có được một danh sách các tài liệu cùng với các liên kết đến các tài liệu mình

tôi tin rằng tôi đang sử dụng Google Docs AP Tôi 3.0 và đang sử dụng gdata-2.0.16 trợ giúp cho python.

Mã cho đến nay:

 

    import gdata.docs.data 
    import gdata.docs.client 

    class SampleConfig(object): 
     APP_NAME = 'GDataDocumentsListAPISample-v1.0' 
     DEBUG = False 

    client = gdata.docs.client.DocsClient() 
    client.ClientLogin('[email_address]','[password]',source=SampleConfig.APP_NAME) 

    col = gdata.docs.data.Resource(type='folder', title='Folder Name') 
    col = client.CreateResource(col) 

    doc = gdata.docs.data.Resource(type='document', title='I did this') 
    doc = client.CreateResource(doc, collection=col) 

Vì vậy, bây giờ cho các câu hỏi: Tôi là vô vọng bị mắc kẹt ở đâu:

  1. Làm thế nào để kiểm tra xem [tên thư mục] tồn tại?
  2. Cách truy xuất nội dung CHỈ [Tên thư mục]?
  3. Làm cách nào để giữ liên kết tuyệt đối với tất cả tài liệu tôi tạo trong thư mục này?

Tôi biết tôi cách xa hoàn thành ở đây, nhưng bất kỳ trợ giúp hoặc lời khuyên nào bạn có thể đưa ra đều tuyệt vời.

Cảm ơn trước!

Trả lời

3

You can query for a folder or document. Khi bạn có thư mục, bạn có thể liệt kê nội dung của nó. Dưới đây là một ví dụ với các thư viện Python:

# Create a query matching exactly a title, and include collections 
q = gdata.docs.client.DocsQuery(
    title='EFD', 
    title_exact='true', 
    show_collections='true' 
) 

# Execute the query and get the first entry (if there are name clashes with 
# other folders or files, you will have to handle this). 
folder = client.GetResources(q=q).entry[0] 

# Get the resources in the folder 
contents = client.GetResources(uri=folder.content.src) 

# Print out the title and the absolute link 
for entry in contents.entry: 
    print entry.title.text, entry.GetSelfLink().href 

Output

My posted doc https://docs.google.com/... 
subtestcoll2 https://docs.google.com/... 
guestimates_1 https://docs.google.com/... 
phase 2 delivery plan - draft https://docs.google.com/... 
Meeting agenda June 09 https://docs.google.com/... 
Phase 2 spec for Graeme 2 March 2009 https://docs.google.com/... 
EFD Meeting 2nd June https://docs.google.com/... 
+0

Cám ơn các chi tiết trong câu trả lời của bạn. Thực sự đánh giá cao nó và tôi nghĩ rằng tôi bắt đầu để có được tôi để làm việc dựa trên ví dụ của bạn. Tuy nhiên entry.GetSelfLink(). Href cho tôi một liên kết ở định dạng: https: //docs.google.com/feeds/default/private/full/folder% .... Mà, khi được sử dụng trong trình duyệt, nhận được tôi "URI yêu cầu không hợp lệ" – user791793

Các vấn đề liên quan