Запустите 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
    }
Другие вопросы по тегам