我按照 https://developers.google.com/identity/protocols/application-default-credentials 上的教程进行操作在谷歌应用程序引擎上的我的应用程序中使用默认凭据。但是,在本地运行应用程序时,我收到 401 错误(凭据无效)
com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 OK { "code" : 401, "errors" : [ { "domain" : "global", "location" : "Authorization", "locationType" : "header", "message" : "Invalid Credentials", "reason" : "authError" } ], "message" : "Invalid Credentials" }
这是我使用的代码,包括教程的部分:
List<String> scopes = Lists.newArrayList("https://www.googleapis.com/auth/youtube.force-ssl");
try{
// Authorize the request.
GoogleCredential credential = GoogleCredential.getApplicationDefault();
if (credential.createScopedRequired()) {
credential = credential.createScoped(scopes);
}
// This object is used to make YouTube Data API requests.
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential)
.setApplicationName("youtube-cmdline-captions-sample").build();
} catch (IOException e) {
e.printStackTrace();
}
我安装了 Google Cloud SDK,我使用 shell 授予访问我的 Google 帐户的权限
最佳答案
为了使用应用程序默认凭据,您需要执行几个步骤...您可以按照以下步骤操作,或者查看此 link .
- 首先要做的事情:安装 Google 云存储 SDK
- 确保您可以从 SDK 运行命令。如果您没有安装 python,则需要安装 python 2.7 或更高版本,以及 pyopenssl...
- 您需要通过运行以下命令从 SDK 中进行身份验证 gcloud auth activate-service-account [服务帐户电子邮件] --key-fil e [.p12 文件] 。当您运行此命令时,您应该会收到一条消息,告知您已激活服务帐户
- 您需要通过设置从 SDK 设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 到 key 的 JSON 路径 CLOUDSDK_PYTHON_SITEPACKAGES 设置为 1,并设置项目
配置系统变量的命令...
set GOOGLE_APPLICATION_CREDENTIALS "secret.json path" set CLOUDSDK_PYTHON_SITEPACKAGES 1 gcloud config set project "your project name"
在您对自己进行身份验证和授权后,如果您已正确设置环境,则可以开始使用应用程序默认凭据。
关于java - Google App Engine 中的默认凭据 : Invalid Credentials error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31651973/