Google App Engine中的默认凭据:凭据无效错误

时间:2015-07-27 11:32:19

标签: java google-app-engine oauth-2.0 credentials

我按照https://developers.google.com/identity/protocols/application-default-credentials上的教程在Google应用引擎上使用我的应用中的默认凭据。但是,在本地运行应用程序时,我收到401错误(凭据无效)

  

com.google.api.client.googleapis.json.GoogleJsonResponseException:401   OK {“code”:401,“errors”:[{       “域名”:“全球”,       “location”:“授权”,       “locationType”:“标题”,       “message”:“凭证无效”,       “reason”:“authError”}],“message”:“凭证无效”}

这是我使用的代码,包括教程部分:

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帐户的权限

1 个答案:

答案 0 :(得分:1)

要使用应用程序默认凭据,您需要执行以下几个步骤...您可以按照以下步骤操作,或查看此link

  1. 首先要做的事情是:安装谷歌云存储SDK
  2. 确保您可以从SDK运行命令。如果您没有安装python,则需要安装python 2.7或更高版本,以及pyopenssl ...
  3. 您需要通过运行SDK在SDK中进行身份验证 gcloud auth activate-service-account [服务帐户电子邮件] --key-fil e [.p12文件]。当您运行此操作时,您应该会收到一条消息,告知您已激活服务帐户
  4. 您需要通过设置从SDK设置环境变量 GOOGLE_APPLICATION_CREDENTIALS到秘密的JSON路径 CLOUDSDK_PYTHON_SITEPACKAGES为1,还设置项目
  5. 配置系统变量的命令......

    set GOOGLE_APPLICATION_CREDENTIALS "secret.json path"
    set CLOUDSDK_PYTHON_SITEPACKAGES 1
    gcloud config set project "your project name"
    

    在您进行身份验证并自行授权后,您可以开始使用应用程序默认凭据,前提是您已正确设置环境。