Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java客户端上的Dialogflow V2代理版本控制_Java_Dialogflow Es - Fatal编程技术网

Java客户端上的Dialogflow V2代理版本控制

Java客户端上的Dialogflow V2代理版本控制,java,dialogflow-es,Java,Dialogflow Es,我正在移植到DialogFlow V2,并想尝试一下代理版本。请在此处阅读: 问题是,我不知道这会如何影响凭据的配置,因为我无法在客户端库中找到任何内容。我当前用于身份验证的代码是 public DialogFlowEngine(DialogFlowConfig config) throws IOException { this.config = config; GoogleCredentials credentials = GoogleCredentials.fromStr

我正在移植到DialogFlow V2,并想尝试一下代理版本。请在此处阅读:

问题是,我不知道这会如何影响凭据的配置,因为我无法在客户端库中找到任何内容。我当前用于身份验证的代码是

  public DialogFlowEngine(DialogFlowConfig config) throws IOException {
    this.config = config;
    GoogleCredentials credentials = GoogleCredentials.fromStream(
        new ByteArrayInputStream(config.getClientCredentials().getBytes())
    );
    this.sessionSettings =
        SessionsSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
            .build();
    this.projectId = ((ServiceAccountCredentials)credentials).getProjectId();
  }
然后,在创建会话时:

try (SessionsClient sessionsClient = SessionsClient.create(this.sessionSettings)) {
        SessionName session = SessionName.of(projectId, requestId);
    ...
我已经看到,如果我想使用原始rest端点使用代理版本控制功能,我必须发布到url,如https://dialogflow.googleapis.com/v2beta1/projects/small-talk-dfghk/agent/environments/development/users/-/sessions/e5472b8a-9feb-43f1-8213-648215960d22:detectIntent

然而,从api的外观来看,这样的操作似乎无法执行,因为反编译的SessionName类与如下URL匹配:

private static final PathTemplate PATH_TEMPLATE = PathTemplate.createWithoutUrlEncoding("projects/{project}/agent/sessions/{session}");
我们有办法吗?您建议如何在环境之间配置DialogFlow开发人员、qa人员、登台人员、生产人员。。。否则呢

即使我有正确的API调用,我仍然想知道。。。不同的代理版本是否意味着每个环境可以有不同的Json凭据

谢谢你的帮助

您可以使用SessionName.ofProjectEnvironmentUserSessionName,它会像RESTAPI一样接收环境名称