使用App Engine中的Google API(OAuth)

时间:2011-09-01 05:26:21

标签: google-app-engine oauth storage prediction

我想使用Python Google Prediction应用程序中的Google App Engine。 Google预测要求您将“预测模型”存储在Google Storage for Developers中,实际上意味着要使用GP,您必须使用GSD。不幸的是,GP和GSD似乎都需要OAuth 2.0。

这个Oauth的东西确实在阻碍!我发现的所有示例似乎都处理了想要使用Oauth访问用户数据/凭证/身份/的情况。我没有必要这样做。我只想使用http请求从我的服务器访问资源(GP和GSD)。重复一遍,我只是想使用他们的一些服务,我根本不需要访问任何其他用户信息!

我可以从我的Google API控制台中看到,我已经为我的GAE应用程序域创建了一个id和秘密。是否无法仅使用这些值对其他Google API进行OAuth身份验证?有效地说“我是域xyz的应用程序,这是我的凭据,让我使用你的API”?谷歌目前迫使人们使用这种繁琐的身份验证系统来解决他们 试图让人们试用 这一点似乎有点荒谬可笑?

我希望有一些神奇的图书馆可以为我处理所有这些OAuth细节。除此之外,如何在Python App Engine中执行这些操作的代码示例将非常有用。我只是想从我的python GAE应用程序中使用Google Prediction和Google Storage for Developers服务,但是我必须配置所有这些OAuth的负担。是不是有一些简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:3)

查看Google API Python Client。你应该能够将你的令牌放入并连接。页面上有一些示例可以为您提供足够的信息来连接。

答案 1 :(得分:3)

我是Google的产品经理,致力于预测API。我要说的第一件事是感谢您尝试API并向全世界介绍您的问题!我们听到你了!我们非常清楚在某些情况下使用API​​的难度以及OAuth2.0可能导致简单用例的一些难题。特别是我试着做几周前你正在做的事情而且我自己很沮丧!我们正在努力!

好的,所以,这一切都很好,花花公子,但我对你有什么帮助吗?希望我能做到!我设法让我的GAE应用程序与GP一起工作 - 我暂时搁置了GSD组件,因为我没时间了,所以希望其他人可以借给你一些示例代码(它应该涉及使用boto& OAuth来处理棘手的一点)。

from apiclient.discovery import build
from oauth2client.client import OAuth2Credentials
# You can find an example oauth2client in the python prediction sample code

# Replace everything in <>'s
credentials = OAuth2Credentials(
    "<access_token>", #probably empty string
    "<client_id>",
    "<client_secret>",
    "<refresh_token>",
    <Expiry>, # Probably None
    "https://accounts.google.com/o/oauth2/token",
    "<app_useragent>")

http = credentials.authorize(httplib2.Http())
service = build("prediction", "v1.3", http=http)

您应该能够从API控制台获取客户端ID作为客户端密钥。您可以使用任何示例应用程序或演示,例如python示例代码,用于生成刷新令牌。

祝你好运!如果您仍有任何问题,请随时直接与我联系(zg@google.com)或发布到我们的公共讨论列表(prediction-api-discuss@googlegroups.com)。