私はこれを徹底的に読みました: https://developers.google.com/google-apps/documents-list/#using_google_apps_administrative_access_to_impersonate_other_domain_users これをグーグルで検索しました。
これまでのところ、次のことができました。
承認:
- クライアントログイン
- OAuth トークン (自分のドメイン キーを使用)
ドメイン内のすべてのユーザーのドキュメント フィードを取得します (#1 のいずれかの方法で承認されています)
。フィードからの「エントリ」を使用してドキュメントをエクスポート/ダウンロードしていますが、管理者と共有されていないドキュメントについては、他のユーザーに対して常に禁止されています。私が使用しているフィードクエリは次のようなものです:https://docs.google.com/feeds/userid@mydomain.com/private/full/?v=3
(私は ?v=3 の有無にかかわらず試しました)
また、xoauth_requestor_id (投稿で xoauth_requestor として見たこともあります) を uri とクライアント プロパティの両方に追加してみました。client.xoauth_requestor_id = ...
コードの一部:
クライアント ログイン (管理者資格情報を使用):
client.http_client.debug = cfg.get('HTTPDEBUG')
client.ClientLogin( cfg.get('ADMINUSER'), cfg.get('ADMINPASS'), 'HOSTED' )
OAuth:
client.http_client.debug = cfg.get('HTTPDEBUG')
client.SetOAuthInputParameters( gdata.auth.OAuthSignatureMethod.HMAC_SHA1, cfg.get('DOMAIN'), cfg.get('APPS.SECRET') )
oatip = gdata.auth.OAuthInputParams( gdata.auth.OAuthSignatureMethod.HMAC_SHA1, cfg.get('DOMAIN'), cfg.get('APPS.SECRET') )
oat = gdata.auth.OAuthToken( scopes = cfg.get('APPS.%s.SCOPES' % section), oauth_input_params = oatip )
oat.set_token_string( cfg.get('APPS.%s.TOKEN' % section) )
client.current_token = oat
フィードが取得されたら:
# pathname eg whatever.doc
client.Export(entry, pathname)
# have also tried
client.Export(entry, pathname, extra_params = { 'v': 3 } )
# and tried
client.Export(entry, pathname, extra_params = { 'v': 3, 'xoauth_requestor_id': 'admin@mydomain.com' } )
ここで何が欠けているかについての提案や指針はありますか? ありがとう