Google Apps フォーム リンクがあり、フォームの所有者を見つける必要があります。
2 レッグ認証でサービス アカウントをセットアップしました。ユーザーになりすましてそのアカウントからファイルのリストを取得できるコード(python、google-api-python-clientおよびoauth2clientを使用)をテストしたため、コードはそのシナリオで機能しています。ただし、この特定のケースでは、ファイル ID しか知りません。所有者を知りたいです。関連するコードセクションは次のとおりです。
credentials = SignedJwtAssertionCredentials(
'123456-xxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com',
key,
scope='https://www.googleapis.com/auth/drive'
)
http = httplib2.Http()
http = credentials.authorize(http)
service = build("drive", "v2", http=http)
# Search file by id
file_id = 'xxxxxxxxBMWnkxVEhnUnF5eEh1Snc6MQ'
f = service.files().get(fileId=file_id).execute()
「ファイルが見つかりません」というエラーが表示されました。フォームへのリンクが有効であるため、ファイルがそこにあることがわかります。テストアカウントでテストしました。file_id とテスト アカウントの両方を prn パラメータとして SignedJwtAssertionCredentials に指定すると、ファイルとそのメタデータを見つけることができます。
apiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/xxxxxxxxBMWnkxVEhnUnF5eEh1Snc6MQ?alt=json returned "File not found: dEtpdmlCYzBMWnkxVEhnUnF5eEh1Snc6MQ">
私が知っている唯一の情報がフォームの ID である場合、ファイルのメタデータ (所有者を含む) を見つけることは可能ですか? ところで、Google Apps コンソールの監査ログにはフォームが含まれていないようです。
ありがとう!
xsf