ADC(应用程序默认凭据)工作流是否只支持Google Cloud API(例如,支持Google Cloud Storage API,但不支持Google Sheet API)?
我指的是Google.auth的默认方法--不必在代码中存储任何私钥,这是一个巨大的胜利,也是有效利用ADC(应用程序默认凭据)设置的主要好处。
如果我将google_application_credentials
环境变量设置为私钥文件,例如key.json,则以下代码可以工作。这与google.auth
包的步骤1中的default
方法内联:1。如果环境变量GOOGLE_APPLICATION_CREDENTIALS设置为有效服务帐户JSON私钥文件的路径,则加载并返回该文件。
import google.auth
from apiclient import discovery
credentials, project_id = google.auth.default(scopes=['https://www.googleapis.com/auth/spreadsheets'])
sheets = discovery.build('sheets', 'v4', credentials=credentials)
SPREADSHEETID = '....'
result = sheets.spreadsheets().values().get(spreadsheetId=SPREADSHEETID, range='Sheet1!A:B').execute()
print result.get('values', [])
现在,看看方法的步骤4:4。如果应用程序运行在Compute Engine或App Engine flexible环境中,则从元数据服务获取凭据和项目ID。
如果删除Google Compute实例上的Google_Application_Credentials
环境变量,则会出现以下错误:
googleapiclient.errors.httperror:
根据本文档,您使用的作用域需要OAuth2.0授权。因此,需要用户登录和同意。
我创建了一个具有并发gcloud应用程序的Dialogflow代理。但是,当我尝试将它集成到Node.js后端时,它似乎访问了错误的应用程序默认凭据。 我可以确认它正在验证身份验证是否成功,因为当我运行以下代码时,它的控制台记录了正确的项目ID(diagnosistest-56e81): null 当我执行此操作时,会得到不同的错误消息:
我当前正在尝试访问云API,但收到以下错误:
它说要使用以下命令: 在Google Shell中,我尝试了以下操作: 我知道命令指向的是正确的文件位置。如何成功验证应用程序默认凭据?
我正在尝试在 Go 应用引擎部署上使用具有域范围委派 (DwD) 的服务帐户。 我已按照使用 Google 应用程序默认凭据的步骤将服务帐户与应用引擎配合使用。 我让代码在我的开发计算机上本地运行,但我被困在从我的域中检索实际数据。 我用的是Admin SDK。在“向您的服务帐户授予域范围的权限”一节中,它说我的“服务帐户需要模拟其中一个用户来访问Admin SDK Directory API”。
问题内容: 我最近将gcloud库从118.0.0更新为132.0.0,并且remote_api_shell立即不再起作用。我经历了许多重新登录的过程,通过gcloud设置了应用程序默认凭据,并使用了服务帐户和环境变量。所有排列均失败,并显示相同的错误消息: 经过131.0.0和130.0.0的重新修订后,我回到118.0.0,重新登录,一切正常。 更新gcloud之后,我没有更新正在运行的应用程