пытаясь сгенерировать один токен twilio, который предоставляет доступ к видео и чату в одном - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть приложение для видеочата, которое я встроил в реагирующее / нод с помощью программируемого видео Twilio. Он работает и отлично работает.

Я хочу добавить функцию чата, чтобы участники видеоконференции в одной комнате могли общаться друг с другом с помощью программируемого чата Twilio.

У меня все закодировано и работая так, как я этого хочу, я получаю сообщение об ошибке неверного токена Twilio в функции ЧАСТА, когда я пытаюсь использовать его в браузере:

screenshot

Как видите, токен, который я генерирую, подходит для доступа к видео, но ему просто не предоставляется доступ к чату.

Вот код, который я использую для генерации токена. , Обратите внимание, что я делаю addGrant для чата и видео в одном токене. Я получаю токен обратно очень хорошо, поэтому я предполагаю, что этот метод был поддержан. Однако, похоже, что по какой-то причине токен не имеет доступа к чату от Twilio.

//Handle Twilio Token Generation
app.get('/token', (req, res) => {
    const { identity, roomName } = req.query;
    const token = new AccessToken(twilioAccountSid, twilioApiKeySID, twilioApiKeySecret, {
        ttl: MAX_ALLOWED_SESSION_DURATION,
    });
    token.identity = identity;

    const videoGrant = new VideoGrant({ room: roomName });
    token.addGrant(videoGrant);

    const chatGrant = new ChatGrant({
        serviceSid: twilioChatSService,
    });
    token.addGrant(chatGrant);

    res.send(token.toJwt());

    console.log(`Successfully issued Video and Chat token for ${identity} in room ${roomName}`);

    cookieMgr.set('token', token.toJwt());
});

app.get('*', (_, res) => res.sendFile(path.join(__dirname, 'build/index.html')));

app.listen(8081, () => console.log('Token server running on 8081'));

Что я делаю не так?

Дополнительные примечания: я могу сгенерировать только токен для видео или просто токен для чата с небольшими изменениями в коде для удаления одного сервиса. Так что, похоже, работает на любой или. Он просто не работает при попытке создать один токен, который предоставляет доступ к обоим.

...