我们计划在 Google Cloud 上托管一个主题(发布/订阅),并创建了一个主题和客户服务帐户。
现在我必须连接到主题并发布消息。我试图在发布消息之前进行身份验证。但找不到适合我的场景“使用 rest API 从本地服务器到 Google Cloud 身份验证”的方法。
如果有适用于此方法的任何方法,请帮助我。
这是我正在使用的代码,但它给出的是浏览器重定向响应而不是访问令牌。请查看下面的代码并响应
private static Credential authorize() throws Exception {
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleClientSecrets clientSecrets = JSON_FACTORY.fromReader(new InputStreamReader(new FileInputStream(new File(KEY_FILE_LOCATION))), GoogleClientSecrets.class);
if (clientSecrets.getDetails().getClientId().startsWith("Enter")
|| clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
System.out.println("Enter Client ID and Secret in client_secrets.json");
System.exit(1);
}
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
Collections.singleton(PubsubScopes.PUBSUB)).build();
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize(SERVICE_ACCOUNT_EMAIL);
}
Please open the following address in your browser:
答案1
您所需要的只是服务帐户的 JSON 密钥文件。查看文档了解如何使用此功能(使用GOOGLE_APPLICATION_CREDENTIALS
环境变量的应用程序默认凭据)。