Запустите twilio flex chat, используя node.js
У меня возникли проблемы с получением twilio flex для отображения сообщений, созданных с помощью API с использованием node.js.
Я создаю канал, добавляю участника, создаю сообщение на канале, используя участника.
Гибкая панель инструментов показывает входящий запрос чата в списке задач, я могу ответить на запрос чата, но ни одно из сообщений, сохраненных на канале, не отображается.
Интересно, если я использую скрипт twilio-flex-webchat.min.js и инициирую чат с веб-страницы, а затем получу ChannelSid для этого разговора (используя https://chat.twilio.com/v2/Services/ISXXXX/Channels) Я могу использовать API для создания сообщений для этого канала, и они появляются на гибкой панели инструментов. Но мне нужно все это, чтобы работать через node.js.
Я сравнил объекты twilio задачи, канала, резервирования, участника и сообщения как для разговоров в чате, используя веб-библиотеку twilio-flex-webchat.min.js, так и объекты, созданные с помощью кода node.js. Я не могу найти никакой заметной разницы.
У кого-нибудь есть идеи?
Вот мой код
const accountSid = 'ACXXXXXXXXXX';
const authToken = 'XXXXXXXXXXXXXXXX';
const workspaceSid = 'WSXXXXXXXXXXXXXXXx';
const workFlowSid = 'WWXXXXXXXXXXXXXXXXXXXXXX';
const serviceSid = 'ISXXXXXXXXXXXXXXXXXXXXXX';
const client = require('twilio')(accountSid, authToken);
(async () => {
//create channel
let channel = await client.chat.services(serviceSid)
.channels
.create({
attributes: JSON.stringify({
status: "ACTIVE",
from: "Some Person",
channel_type: "web"
}),
workflowSid: workFlowSid,
taskChannel: 'chat',
friendlyName: 'Flex WebChat',
type: 'private'
});
//create a member in this channel
let member = await client.chat.services(serviceSid)
.channels(channel.sid)
.members
.create({ identity: 'WEB_CLIENT' });
//post a message to this channel from the member
let message = await client.chat.services(serviceSid)
.channels(channel.sid)
.messages.create({ body: 'This is a test message', to: channel.sid, from: 'WEB_CLIENT' });
//create a task for my programable chat channel and associate the channel sid for my current conversation
let task = await client.taskrouter.workspaces(workspaceSid)
.tasks
.create({
attributes: JSON.stringify({
channelSid: channel.sid,
channelType: "web"
}),
workflowSid: workFlowSid,
taskChannel: 'chat',
});
})();
Спасибо
1 ответ
Перед добавлением сообщения и созданием Задачи необходимо создать сеанс прокси, добавить участников в качестве участников, а затем обновить атрибуты канала:
{
"status": "ACTIVE",
"forwarding": true,
"twilioNumber": firstParticipant.proxyIdentifier,
"serviceNumber": someIdentity,
"from": from,
"channel_type": "sms",
"proxySession": session.sid
}