Botframework Bot DirectLine令牌分发问题

Botframework Bot DirectLine令牌分发问题,botframework,direct-line-botframework,Botframework,Direct Line Botframework,基于此, 如果您计划将令牌分发给客户机并希望他们启动对话,请使用生成令牌操作 这是否意味着我们可以使用Secret从后端生成令牌,并将令牌分发给客户端以启动对话 为了测试它,我写了以下内容: Backend: @Azure Function [FunctionName("XXXXX")] public static async Task<object> RunAsync([HttpTrigger(Route = "XXXXX")] HttpRequestMessage

基于此,

如果您计划将令牌分发给客户机并希望他们启动对话,请使用生成令牌操作

这是否意味着我们可以使用Secret从后端生成令牌,并将令牌分发给客户端以启动对话

为了测试它,我写了以下内容:

Backend: @Azure Function

  [FunctionName("XXXXX")]
    public static async Task<object> RunAsync([HttpTrigger(Route = "XXXXX")] HttpRequestMessage req, TraceWriter log)
    {
        log.Info($"Webhook was triggered!");

        var tokenResponse = await new DirectLineClient(directLineSecret).Tokens.GenerateTokenForNewConversationAsync();
        return req.CreateResponse(HttpStatusCode.OK, tokenResponse.Token);
    }
奇怪的是变量conversation为空

当我将后端的Generate-Token代码放到客户端时,变量conversation是一个有效的对象

我的问题是:我们可以将生成令牌放在后端并将令牌分发给客户端吗?

我的问题是:我们可以将生成令牌放在后端并将令牌分发给客户端吗?

当然,如果您不想公开/共享直连密码,您可以在后端服务中生成令牌,并将令牌分发给客户端,让它们启动对话

注意:在DirectLine客户端中使用http触发函数生成的直连令牌时,请确保该令牌未过期

我使用的DirectLineClient进行测试,并修改代码以接受DirectLine令牌。如果我提供的直连令牌已过期,则启动对话将失败


问题是后端应该以文本媒体类型返回令牌。非常感谢您的反馈和提醒

 return req.CreateResponse(HttpStatusCode.OK, tokenResponse.Token, "text/plain");

当您从后端使用它时有任何例外吗?非常感谢。后端没有异常。机制是正确的。我发现的错误部分是后端代码,我没有在响应中添加媒体类型,这使得令牌被误解为json,并在令牌中添加了不必要的包装引号。非常感谢。你说得对。机制是正确的。我发现的错误部分是后端代码,我没有在响应中添加媒体类型,这使得令牌被误解为json,并在令牌中添加了不必要的包装引号。返回req.CreateResponse(HttpStatusCode.OK,tokenResponse.Token,“text/plain”);
 return req.CreateResponse(HttpStatusCode.OK, tokenResponse.Token, "text/plain");