5

Google Document API を使用して、新しいドキュメントを作成しようとしているだけでなく、Google ドキュメントの特定のフォルダー内にある現在のすべてのドキュメントのリストを提供しようとしています。私はPythonの開発を始めているので、まだ端が少し荒いです。

私がやろうとしていること:

  1. [フォルダ名] という名前のコレクション (またはフォルダ) を作成するその名前がまだ存在しない場合のみ
  2. [フォルダ名]内にドキュメントを作成
  3. [フォルダ名] からのみ、ドキュメントのリストとドキュメント自体へのリンクを取得します

私は Google Docs API 3.0 を使用しており、Python にはgdata-2.0.16ヘルパーを使用していると思います。

これまでのコード:

    gdata.docs.data をインポート
    gdata.docs.client をインポート

    クラス SampleConfig(オブジェクト):
        APP_NAME = 'GDataDocumentsListAPISample-v1.0'
        デバッグ = 偽

    クライアント = gdata.docs.client.DocsClient()
    client.ClientLogin('[メールアドレス]','[パスワード]',source=SampleConfig.APP_NAME)

    col = gdata.docs.data.Resource(type='フォルダ', title='フォルダ名')
    col = client.CreateResource(col)

    doc = gdata.docs.data.Resource(type='document', title='私はこれをやった')
    doc = client.CreateResource(doc, collection=col)

それでは、質問に移りましょう: 私が絶望的に​​立ち往生している場所:

  1. [フォルダ名] が存在するかどうかを確認するにはどうすればよいですか?
  2. [フォルダ名] のみのコンテンツを取得する方法は?
  3. このフォルダに作成したすべてのドキュメントへの絶対リンクを取得するにはどうすればよいですか?

私はここでの完成にはほど遠いことを知っていますが、あなたが与えることができる助けやアドバイスは素晴らしいでしょう.

前もって感謝します!

4

1 に答える 1

3

フォルダまたはドキュメントを照会できます。フォルダを取得したら、その内容を一覧表示できます。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

出力

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/...
于 2012-04-09T13:21:00.773 に答える