我尝试通过REST API与DialogFlow项目进行连接。这是一个Java桌面应用程序,因此redirectURI为null。 但是,google Dialogflow重定向到登录页面,因此我无法自动提取所需的代码。到目前为止,这是代码:
ClientIdentifier clientIdentitifier = new ClientIdentifier(CLIENT_ID, CLIENT_SECRET);
OAuth2CodeGrantFlow ouauth2CodeGrantFlow = OAuth2ClientSupport.googleFlowBuilder(
clientIdentitifier, null, SCOPE)
.prompt(OAuth2FlowGoogleBuilder.Prompt.CONSENT)
.property(OAuth2CodeGrantFlow.Phase.AUTHORIZATION, OAuth2Parameters.STATE, "test")
.build();
String authorizationURL = ouauth2CodeGrantFlow.start();
Client client = ClientBuilder.newClient();
Response response = ClientBuilder.newClient()
.target(authorizationURL)
.request()
.get();
String code = response.readEntity(String.class);
TokenResult result = ouauth2CodeGrantFlow.finish(code, "test");
代码包含整个登录页面,因此.finish(。,。)调用返回ProcessingException:请求访问令牌时出错。响应状态为400。
但是如何直接获得代码而不将其重定向到登录名?