Botframework Bot DirectLine令牌分发问题
基于此, 如果您计划将令牌分发给客户机并希望他们启动对话,请使用生成令牌操作 这是否意味着我们可以使用Secret从后端生成令牌,并将令牌分发给客户端以启动对话 为了测试它,我写了以下内容: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
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");