Google Drive API へのサービス アカウント アクセスを取得しようとしています。アプリケーションを作成するときは、 Google Drive SDK の例に従いました。私のコードは、ほぼ正確に例に似ています:
class MainPage(webapp2.RequestHandler):
def get(self):
build = createDriveService(user)
searchFile = build.files().get(fileId='FILEID').execute()
self.response.write(searchFile)
def createDriveService(userEmail):
API_KEY = 'APIKEY'
credentials = AppAssertionCredentials(
scope='https://www.googleapis.com/auth/drive',
sub=userEmail)
http = httplib2.Http()
http = credentials.authorize(http)
return build('drive', 'v2', http=http, developerKey=API_KEY)
GAE ページにアクセスすると、ログに次のようなエラーが表示されます。
<"File not found: FILEID">
UI からファイル ID をコピーしたので、ファイル ID が存在することはわかっています。変数 API_KEY に単純なキー アクセスを使用しています。アプリケーションを別の方法で検証する必要がありますか?
EDIT1:
他のさまざまな StackOverflow に従ってみました。そのうちの 1 つは、SignedJwtAssertionCredentials を使用し、.p12 キーを .pem キーに変換することです。この変更の後、私は
cannot import SignedJwtAsserionCredentials
エラー。そこから、pycrypto ライブラリを .xml ファイルに含めるようにしましたapp.yaml
。何か案が?
EDIT2
App Engine でユーザーの偽装に成功しました。この以前に回答された質問に従いましたが、うまくいきました。