我正在尝试使用 Google Sheets Api 提取一些数据。这是代码的开头:
# Import the python libraries.
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from pathlib import Path
import os
import json
# Get JSON_DATA from the build environment.
jsondict = json.loads(os.environ['JSON_DATA'])
# Use creds to create a client to interact with the Google Drive API
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_dict(jsondict, scope)
client = gspread.authorize(creds)
# Open the Google Sheet by ID.
sheet1 = client.open_by_key("somekey").sheet1
# Extract all of the records for each row.
sheetdata1 = sheet1.get_all_records()
在我所指的教程中,这是作者对JSON_DATA
对象所说的:
注意:python 代码中的“JSON_DATA”变量是一个 Netlify 构建环境变量,我使用 JSON 格式的 Google API 凭据信息设置它,以防止我的秘密内容出现在脚本之外。
包含构建环境变量的Mynetlify.toml
具有以下内容:
[build]
command = "hugo"
publish = "public"
[build.environment]
HUGO_VERSION = "0.80.0"
[context]
[context.branch-deploy]
command = "hugo -F -b $DEPLOY_PRIME_URL"
[context.deploy-preview]
command = "hugo -F -b $DEPLOY_PRIME_URL"
[context.production]
[context.production.environment]
HUGO_ENV = "production"
我知道要包含从 Google 下载的凭据(在 JSON 文件中),我必须将其放入netlify.toml
:
[installed]
client_id = "something.apps.googleusercontent.com"
project_id = "someiD"
auth_uri = "https://accounts.google.com/o/oauth2/auth"
token_uri = "whatevergoeshere"
client_secret = "somesecret"
redirect_uris = [ "something", "http://localhost" ]
但是我如何读取 Python 代码的这些凭据?该行似乎表明它只需要一个 JSON 文件。