如何在 Docker 中授权 Google API
Posted
技术标签:
【中文标题】如何在 Docker 中授权 Google API【英文标题】:How to authorize Google API inside of Docker 【发布时间】:2021-08-06 20:52:24 【问题描述】:我在 Docker 中运行一个应用程序,需要我利用 google-bigquery。当我在 Docker 之外运行它时,我只需要转到下面的链接(已编辑)并授权。但是,当我从 Docker 终端复制粘贴它时,该链接不起作用。我也尝试过端口映射,也没有运气。
代码:
credentials = service_account.Credentials.from_service_account_file(
key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
# Make clients.
client = bigquery.Client(credentials=credentials, project=credentials.project_id,)
回复:requests_oauthlib.oauth2_session - DEBUG - Generated new state
Please visit this URL to authorize this application:
【问题讨论】:
【参考方案1】:请查看可用的解决方案on this page,它会不断更新。
gcloud 凭据助手 独立的 Docker 凭据助手 访问令牌 服务帐号密钥简而言之,您需要使用service account key 文件。确保您使用 Secret Manager,或者您只是为 Docker 映像发布服务帐户密钥文件。
您需要在构建或运行时将服务帐户密钥文件放入 Docker 容器中。
【讨论】:
我有一个服务帐户密钥。只是当我在上面的响应中单击该链接时,它会将我带到 This page is not working 网页。这可能不是 Docker 问题,因为我现在正在本地机器上获取它。它通常在第一次工作,但不是以后的时间。 应该没有链接,如果您有链接,则意味着 PERSON 需要将某些东西授权为 OAuth。可以将服务帐户密钥文件添加到代码中,并且可以正常工作。重新访问您的代码,因为您可能使用错误。 有趣。我通常在 Jupyter 笔记本中运行它,它会自动将我带到该站点并进行身份验证(如果我已登录),但这是来自 Docker 容器。很奇怪。谢谢。以上是关于如何在 Docker 中授权 Google API的主要内容,如果未能解决你的问题,请参考以下文章
Google Adwords API with OAuth2 如何获取授权用户的电子邮件?
如何从 Windows 服务授权 Google Sheets API
如何使用 OAuth2 授权 Google 分析数据 API
Youtube Data API - 如何避免 Google OAuth 重定向 URL 授权