6

多くの機能を備えた既存のGoogleAppEnginePythonアプリがあります。Googleドライブをアプリに統合したいと思います。具体的には、アプリで次のことができるようにします。

  1. ユーザーのGoogleドライブに空のファイルを作成し、ユーザーがGoogleドキュメントを作成できるようにします。
  2. そのファイルをGoogleドライブから取得して、アプリでさらに処理します。
  3. ユーザーがGoogleドキュメントとしてさらに編集できるように、定期的にGoogleドライブに返送してください。

私がやろうとしていることを行う方法を知っている誰かが、私の特定の要件に対応する特定のGoogle Webページに私を導くことができれば永遠に感謝します(「DrEditの例を参照してください」のような一般的な答えではありません) 。前もって感謝します!

アップデート:

drive-v2-python-appengine回答1の提案に従って生成されたサンプルコードに基づいて、空のファイルを作成するためのRequestHandlerを使用したプログラムを次に示します。

import os
import webapp2

import io

from google.appengine.api import memcache

import httplib2
from apiclient.discovery import build
from apiclient.http import MediaIoBaseUpload
from oauth2client.appengine import oauth2decorator_from_clientsecrets


decorator = oauth2decorator_from_clientsecrets(
    os.path.join(os.path.dirname(__file__), 'client_secrets.json'),
    scope=[
        'https://www.googleapis.com/auth/drive',
    ])

http = httplib2.Http(memcache)
drive_service = build("drive", "v2", http=http)


class CreateEmptyFile(webapp2.RequestHandler):
    @decorator.oauth_required
    def get(self):
        body = {
            'title': 'Sample Document',
            'description': 'A sample document',
            'mimeType': 'text/plain'
        }
        media_body = MediaIoBaseUpload(io.BytesIO(""), mimetype='text/plain', resumable=True)
        file = drive_service.files().insert(body=body, media_body=media_body).execute()
        self.redirect("/synopsis")

初めての場合も含めて、これを実行すると、アクセス要求ページが表示されることがありますが、ほとんどの場合、表示されないため、テストはやや混乱します。https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=enを使用してドライブへのアクセスを取り消すと、ドライブがリストに表示されなくなりましたが、1時間以上の遅延が存在すると思いますアクセス取り消しを実行するため。それについてはよくわかりません、そしてそれが文書化されているのを見たことがありません。

いずれにせよ、への呼び出しをコメントアウトしても、drive_service.files().insert()中止されず、概要ページにリダイレクトされます。これは、生成されたサンプルコードのようになるため、認証が正しく機能していることを意味すると思います。

ただし、コメントを外してメディア本文にinsert使用すると、次のようになります。resumable=True

ResumableUploadError: Failed to retrieve starting URI.

そして、私が使用するresumable=Falseと、次のようになります。

HttpError: <HttpError 401 when requesting https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json returned "Login Required">

そのため、OAuth 2.0認証を取得できるようですが、ファイルを挿入できません。

4

1 に答える 1

1

クイックスタート アプリをお試しください: https://developers.google.com/api-client-library/python/start/installation

クイックスタート アプリ エンジン アプリを作成できます。これは、初期設定を作成するのに役立ちます。特定の使用例については、ドライブ API リファレンスを参照してください。

于 2013-03-17T07:47:24.803 に答える