用户和机器人消息出现在聊天容器的同一侧
User and Bot messages appear on same side of chat container
我构建了一个 QnA Maker,并通过 Direct Line 将其集成到我的网站中,使用 BotFramework-WebChat 进行样式设置。
用户和机器人的消息出现在聊天容器的同一侧。我不明白为什么。
这是目前的样子:
这是我使用的代码:
<script>
const styleSet = window.WebChat.createStyleSet({
bubbleFromUserBackground: 'rgba(227, 227, 227, .1)',
hideUploadButton: true,
botAvatarInitials: 'WD',
sendTypingIndicator: true,
userAvatarInitials: 'you'
});
styleSet.textContent = Object.assign(
{},
styleSet.textContent,
{
fontFamily: '\'Lato\', sans-serif'
}
);
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: 'xxxxxx'
}),
styleSet,
userID: 'qna-homepage-bot',
username: 'Web Chat User',
locale: 'en-US',
},
document.getElementById('webchat')
);
document.querySelector('#webchat > *').focus();
</script>
我无法重现这一点,但我怀疑您将用户 ID 设置为与机器人 ID 相同的值。当 Web Chat 收到 activity 时,它会根据 ID 在 activity 的 from 属性中设置角色 属性(您可以查看源代码 here ).网络聊天然后使用该角色来确定 activity 的样式。如果 bot id 等于用户 id,网络聊天将混淆角色属性并应用错误的 CSS 样式。尝试将呈现 Web 聊天选项中的 userID
值更改为其他值。
注意,每个用户的userID
值应该是唯一的;否则,每个会话都将共享相同的用户状态。
希望对您有所帮助!
我构建了一个 QnA Maker,并通过 Direct Line 将其集成到我的网站中,使用 BotFramework-WebChat 进行样式设置。
用户和机器人的消息出现在聊天容器的同一侧。我不明白为什么。
这是目前的样子:
这是我使用的代码:
<script>
const styleSet = window.WebChat.createStyleSet({
bubbleFromUserBackground: 'rgba(227, 227, 227, .1)',
hideUploadButton: true,
botAvatarInitials: 'WD',
sendTypingIndicator: true,
userAvatarInitials: 'you'
});
styleSet.textContent = Object.assign(
{},
styleSet.textContent,
{
fontFamily: '\'Lato\', sans-serif'
}
);
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: 'xxxxxx'
}),
styleSet,
userID: 'qna-homepage-bot',
username: 'Web Chat User',
locale: 'en-US',
},
document.getElementById('webchat')
);
document.querySelector('#webchat > *').focus();
</script>
我无法重现这一点,但我怀疑您将用户 ID 设置为与机器人 ID 相同的值。当 Web Chat 收到 activity 时,它会根据 ID 在 activity 的 from 属性中设置角色 属性(您可以查看源代码 here ).网络聊天然后使用该角色来确定 activity 的样式。如果 bot id 等于用户 id,网络聊天将混淆角色属性并应用错误的 CSS 样式。尝试将呈现 Web 聊天选项中的 userID
值更改为其他值。
注意,每个用户的userID
值应该是唯一的;否则,每个会话都将共享相同的用户状态。
希望对您有所帮助!