gpt4 book ai didi

python - 如何获取我自己帐户的访问 token 以在我的服务器中存储/使用?

转载 作者:行者123 更新时间:2023-11-28 22:52:46 25 4
gpt4 key购买 nike

我将使用 Google Cloud Storage JSON API ,并且该应用程序将仅使用我的 Cloud Storage 项目,而不是个人用户的。如何获取访问 token /API key ,以便我可以向我的 Cloud Storage 项目发出请求,而不必担心来自 AppEngine 的 token 过期等问题?

我看到 Cloud Console 中有一个“服务器 key ”条目,但我不确定它的用途。

我知道用 Google Cloud 项目“激活”我的 AppEngine 项目(天哪,这太困惑了)来实现我想要的,但不幸的是,我的 AppEngine 项目已经被“激活”到另一个 Google Cloud 项目(它没有没有启用 Cloud Storage),并且 Google Cloud 项目已经与另一个 AppEngine 项目相关联(wat?)。

此外,我如何通过包装器库在我的请求中使用这个“api key ”?由于所有在线示例都是通过 OAuth2 完成的,并使用用户的访问 token 签署请求。 (我认为包装器库甚至不支持非 OAuth2 请求?)

最佳答案

您的 AppEngine 项目有一个与之关联的服务帐户。该帐户可以被授予您第二个项目的成员资格。

要查找您的服务帐户的名称,请转到 AppEngine 控制台 (https://appengine.google.com) 并选择您的 AppEngine 项目。在“应用程序设置”选项卡下,您会看到一个看起来像电子邮件地址的“服务帐户名称”。

现在转到云控制台 ( https://cloud.google.com/console ) 并选择第二个项目,即您用于此 Google 云存储的项目。当您在那里时,请确保您已为 Google Cloud Storage(和 JSON 版本)启用它,并且您已设置结算。

在“权限”下,您会看到一个电子邮件地址列表。单击“添加成员”并输入我们之前在 AppEngine 控制台中找到的地址。在所有者、编辑者或查看者之间进行选择,具体取决于您的 AppEngine 应用将要做什么。

或者,除了将该帐户添加到项目本身,您还可以只授予它需要使用的存储桶或对象的权限。

调用 Google Cloud Storage JSON API 时,您可以指定要将哪个 API key 用作 build() 函数的关键字参数。您可以使用任一 API key 。

为了获得调用 JSON API 的凭据,您很可能希望使用 AppAssertionsCredentials,如下所示:https://developers.google.com/api-client-library/python/guide/google_app_engine#ServiceAccounts

import httplib2
from google.appengine.api import memcache
from oauth2client.appengine import AppAssertionCredentials
from apiclient import discovery
...
credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/devstorage.read_write')
http = credentials.authorize(httplib2.Http(memcache))
storage = discovery.build(serviceName='storage', version='v1beta2', http=http, developerKey=your_api_key)

另请注意,除了 JSON API 之外,还有一个特定于 AppEngine 的 Python 库用于访问 Google 云存储:https://developers.google.com/appengine/docs/python/googlecloudstorageclient/

关于python - 如何获取我自己帐户的访问 token 以在我的服务器中存储/使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com