Я пытаюсь настроить своего бота с помощью простого веб-чата от Microsoft Bot. Пример ссылки
Я новичок в Reach and Web Chat. Я хотел бы знать, как мы дифференцируем разговор. Будь то от бота или от пользователя. Потому что оба возвращаются одинаково activity.id
.
Я добавил этот код для тестирования.
content={activity.text + ' Testing ' + activity.id}
Вот полный фрагмент кода
{activities
// Currently, this sample only displays an activity of type "message"
.filter(({ type }) => type === 'message')
// We need to hide "postBack" message sent by the user
.filter(({ channelData: { postBack } = {}, from: { role } }) => !(role === 'user' && postBack))
// Normalize the activity:
// - Every activity should have an "attachments" array, consisting of zero or more attachments:
// - If this is a "messageBack" message, we should use the "displayText",
// because "text" is being submitted to bot, and "displayText" is what we use to override what the bot displays to the user.
.map(activity => ({
...activity,
attachments: activity.attachments || [],
text: getValueOrUndefined(activity, 'channelData', 'messageBack', 'displayText') || activity.text
}))
// Filter out all empty messages (no attachments or text)
.filter(({ attachments, text }) => attachments.length || text)
.map((activity, index) => (
<React.Fragment key={activity.id || index}>
<li className="Sender">
{!!activity.text && (
// We are using the very same component for text message and attachments.
// This is because, attachments can also have "text/markdown" or "text/plain" content.
// In this case, we prefer to have a single component for both of them.
<Attachment
content={activity.text + ' Testing ' + activity.id}
contentType={activity.textFormat === 'markdown' ? 'text/markdown' : 'text/plain'}
/>
)}
{!!activity.attachments.length && (
<ul>
{activity.attachments.map((attachment, index) => (
<li key={index} className="Send">
<Attachment {...attachment} />
</li>
))}
</ul>
)}
</li>
</React.Fragment>
))}
Пожалуйста, дайте мне знать, как мне это исправить.