使用Google API的Java源代码



我正在Eclipse中创建一个使用Google API(自然语言处理)的Java项目,但是我得到了错误:

应用程序默认凭证不可用。如果在Google应用引擎、Google计算引擎或Google Cloud Shell上运行,它们是可用的。否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,该变量指向定义凭据的文件。

在我的系统设置下,我已经进入system并创建了一个环境变量(用户和系统),其名称为:GOOGLE_APPLICATION_CREDENTIALS和一个指向我的服务帐户JSON Key的值,就像文档中所说的那样。我看到有些人在其他问题中也说要使用像:export GOOGLE_APPLICATION_CREDENTIALS="path/to/json/file"这样的命令,但是当我在Windows Bash中这样做时,它没有做任何事情。

我没有在我的JAVA代码中添加变量或路径,因为我不知道如何做到这一点,我无法在任何谷歌文档中找到答案。下面是尝试使用默认应用程序凭据的代码:

有些地方说使用Google App Engine并使用默认凭证,但我宁愿不将项目上传到Google App Engine并使用我已经拥有的JSON凭证文件,似乎这会更容易。

/**
   * Connects to the Natural Language API using Application Default Credentials.
   */
  public static CloudNaturalLanguageAPI getLanguageService() 
    throws IOException, GeneralSecurityException {
    GoogleCredential credential =
        GoogleCredential.getApplicationDefault().createScoped(CloudNaturalLanguageAPIScopes.all());
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    return new CloudNaturalLanguageAPI.Builder(
        GoogleNetHttpTransport.newTrustedTransport(),
        jsonFactory, new HttpRequestInitializer() {
              @Override
              public void initialize(HttpRequest request) throws IOException {
                credential.initialize(request);
              }
            })
        .setApplicationName(APPLICATION_NAME)
        .build();
  }

事实证明,在使用Eclipse时,必须在Eclipse本身中设置GOOGLE_APPLICATION_CREDENTIALS环境变量,而不是在Windows系统设置中。我所要做的就是进入Eclipse,单击Run下拉列表,选择Run Configurations,打开Environment选项卡,并在那里设置环境变量。然后我得到了一个错误,说我必须启用计费,我只是在我的谷歌云平台设置中这样做了。从那以后一切都很顺利!

相关内容

  • 没有找到相关文章

最新更新