我正在尝试获得对 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">
我知道文件 ID 存在,因为我从 UI 复制了它。我正在对变量 API_KEY 使用简单的密钥访问。我应该以不同的方式验证我的申请吗?
编辑1:
我尝试过关注其他各种 StackOverflow。其中之一涉及使用 SignedJwtAssertionCredentials 并将 .p12 密钥转换为 .pem 密钥。在这个改变之后,我得到了一个
cannot import SignedJwtAsserionCredentials
错误。从那里我确保将 pycrypto 库包含在我的app.yaml
. 任何想法?
编辑2
我已经成功地模拟了应用引擎上的用户。我遵循了这个先前回答的问题并且它有效。