我正在尝试让我的GAE(python)应用程序与Prediction API对话,但我一直在HttpError: <HttpError 401 when requesting ... returned "Invalid Credentials">
我的GAE代码是:
from handler_request import Request_Handler # My extended Request Handler
from apiclient.discovery import build
from oauth2client.appengine import AppAssertionCredentials
import httplib2
api_key = "<my key for server apps>"
http = AppAssertionCredentials('https://www.googleapis.com/auth/prediction').authorize(httplib2.Http())
service = build('prediction', 'v1.6', http=http, developerKey=api_key)
class ListModels(Request_Handler):
def get(self):
papi = service.trainedmodels()
result = papi.list(
project='my_project_number',
maxResults=10
).execute()
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Result: ' + repr(result))
出于某种原因,这不起作用。我直接从此页面获取此代码并根据我的需要进行调整:https://developers.google.com/prediction/docs/developer-guide#predictionfromappengine
事实上,如果我复制并粘贴相同的代码,我仍会收到Invalid Credentials
错误。
有什么建议吗?
答案 0 :(得分:2)
要检查的一些事项:
对于Prediction API 1.6版,您不再需要指定developerKey(所以我建议不要这样做),AppAssertionCredentials就足够了。
AppAssertionCredentials无法在本地dev_appserver.py环境中运行,请确保部署到&lt;您的应用名称&gt; .appspot.com以使用 - 或者在本地测试时使用SignedJwtAssertionCredentials作为替代。< / p>
确保与App Engine应用关联的服务帐户已添加到&#34;团队&#34;在启用了Prediction API的项目的API控制台中。