G-Cloud SDK 应用程序:如何授权 sdk 应用程序访问谷歌表格
Posted
技术标签:
【中文标题】G-Cloud SDK 应用程序:如何授权 sdk 应用程序访问谷歌表格【英文标题】:G-Cloud SDK Application: How to authorize sdk app to access google sheets 【发布时间】:2020-10-16 09:34:30 【问题描述】:将应用部署到 Google Cloud 时遇到问题。它在本地运行良好,但在一个 Google Cloud 上存在身份验证问题。您如何授权部署到 G-Cloud SDK 的应用程序使用 google 表格?我尝试了多种方法,但都失败了。我认为我的痛点是我试图像这是一个客户一样进行身份验证,但事实并非如此。我也尝试了服务帐户的方式,但我可能搞砸了。以下是在本地工作但无法适应 Google SDK 的代码。
def get_entry():
creds = None
# The file token.pickle stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
service = build('sheets', 'v4', credentials=creds)
# Call the Sheets API
sheet = service.spreadsheets()
【问题讨论】:
您在 GCP 上的何处运行代码?在哪个产品上?您是否尝试在 GCP 上部署在本地运行的代码? @guillaumeblaquiere 实际上不确定。我认为部署到 GCP 是一件很奇怪的事情。我相信我正在部署到 App Engine,使用了本指南:cloud.google.com/appengine/docs/standard/python3/quickstart 【参考方案1】:这是因为由于限制,您无法在 Google App Engine 上运行本地服务器。
我推荐你使用下面的代码:
if os.environ.get('GAE_ENV') == 'standard':
creds = flow.run_console()
else:
creds = flow.run_local_server()
【讨论】:
以上是关于G-Cloud SDK 应用程序:如何授权 sdk 应用程序访问谷歌表格的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap iOS 提交错误:ITMS-90807:无效授权 - 如何使用 SDK 13 或更高版本进行构建?
登录并再次授权时如何在iOS SDK中的Facebook应用程序中获取Facebook帐户的更改?
Heroku 上的 Paypal 商家-SDK-Ruby 授权问题