Botframework 提示用户使用MS Bot Framwork v4在对话框流中上载文件
我有一个需要用户上传文件的对话框流。我想提示用户,让他们点击一个按钮,打开一个文件浏览窗口,选择他们想要上传的文件。我不想使用WebChat窗口文本输入框中的文件选择器(用户发现这令人困惑)。这可能吗?我在v3的文档中看到有一个AttachmentPrompt对话框。然而,在v4的文档中,我在这里只看到一行中提到它。。。然而,除了听起来很有希望之外,似乎没有关于此功能的文档Botframework 提示用户使用MS Bot Framwork v4在对话框流中上载文件,botframework,Botframework,我有一个需要用户上传文件的对话框流。我想提示用户,让他们点击一个按钮,打开一个文件浏览窗口,选择他们想要上传的文件。我不想使用WebChat窗口文本输入框中的文件选择器(用户发现这令人困惑)。这可能吗?我在v3的文档中看到有一个AttachmentPrompt对话框。然而,在v4的文档中,我在这里只看到一行中提到它。。。然而,除了听起来很有希望之外,似乎没有关于此功能的文档 谢谢你能提供的任何帮助 PrompAttachment不定义客户端渲染或客户端文件上载代码。为了让WebChat控件响应自
谢谢你能提供的任何帮助 PrompAttachment不定义客户端渲染或客户端文件上载代码。为了让WebChat控件响应自定义按钮,您需要为Web Chat控件提供附件中间件,并让bot发送自定义附件类型 自定义附件:
private class FileUpload : Attachment
{
public FileUpload()
: base("application/uploadAttachment") { }
}
var reply = activity.CreateReply("Upload a File");
reply.Attachments.Add(new FileUpload());
await connector.Conversations.SendToConversationAsync(reply);
正在答复文件上载附件:
private class FileUpload : Attachment
{
public FileUpload()
: base("application/uploadAttachment") { }
}
var reply = activity.CreateReply("Upload a File");
reply.Attachments.Add(new FileUpload());
await connector.Conversations.SendToConversationAsync(reply);
网页托管网络聊天:
<!DOCTYPE html>
<html>
<body>
<div id="webchat" />
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/react@16.5.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.5.0/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/react-redux@5.0.7/dist/react-redux.min.js"></script>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<script>
function uploadFile() {
document.querySelector('[title="Upload file"]').click();
}
</script>
<script type="text/babel">
var chatbot = new WebChat.createDirectLine({
token: 'YourToken',
webSocket: true,
});
const attachmentMiddleware = () => next => card => {
switch (card.attachment.contentType) {
case 'application/uploadAttachment':
return (<button type="button" onClick={uploadFile}>Upload file</button>);
default:
return next(card);
}
};
WebChat.renderWebChat({
directLine: chatbot,
botAvatarInitials: 'Bot',
attachmentMiddleware,
}, document.getElementById('webchat'));
</script>
</body>
</html>
函数uploadFile(){
document.querySelector('[title=“Upload file”]')。单击();
}
var chatbot=new WebChat.createDirectLine({
令牌:“YourToken”,
webSocket:没错,
});
const attachmentMiddleware=()=>next=>card=>{
开关(卡.附件.内容类型){
案例“应用程序/上传附件”:
返回(上传文件);
违约:
返回下一张(卡片);
}
};
WebChat.renderWebChat({
电话线:聊天机器人,
BotAvatariInitials:“Bot”,
附件:,
},document.getElementById('webchat');
如何使用.NET而不是JS实现这一点?我已经尝试过实现同样的目标,但我正在努力,而且明显缺乏关于创建中间件来处理自定义按钮的文档或示例。这是一个.net的例子。js是客户端,用于呈现“application/uploadAttachment”自定义附件。WebChat自定义呈现的一些示例可以在WebChat GitHub中找到:这可以在团队中而不是在WebChat中实现吗?现在,向bot发送文件似乎在上被禁用Teams@GuillaumeLabs为了能够将文件上载到团队中的bot,清单需要有supportsFiles:true