Javascript Twilio-client: Ошибка: вызовите Device.setup() перед подключением
Я пытаюсь использовать Programmable Voice API, чтобы позвонить со своей страницы (React), следуя официальному руководству. И есть странная ошибка.
Итак, при монтировании компонента я проверяю наличие токена, а затем использую его для настройки устройства подключения.
import { Device } from 'twilio-client';
.....
в компоненте:
let device = new Device();
const [callState, setCallState] = useState({
muted: false,
log: 'Connecting...',
onPhone: false,
currentNumber: '',
isValidNumber: false,
active: false
})
....
useEffect(() => {
console.log('Doing some stuff on Component mount')
if (token) {
device.setup(token, { closeProtection: true });
setCallState(prevState => ({
...prevState,
active: true
}));
} else {
//GET TOKEN
}
// Configure event handlers for Twilio Device
//TODO: Outdated bit, for change
device.disconnect(() => {
setCallState(prevState => ({
onPhone: false,
log: 'Call ended.'
}));
});
device.ready(() => {
setCallState(prevState => ({
log: 'Connected'
}));
});
}, [token])
Затем в обработчике вызовов я звоню device.connect
нравится:
const handleToggleCall = () => {
if (callState.onPhone) {
device.disconnectAll();
setCallState(prevState => ({
...prevState,
onPhone: false
}));
} else {
device.connect({ number: "SOME NUMBER" });
setCallState(prevState => ({
...prevState,
muted: false,
onPhone: true
}));
}
}
Когда я звоню handleToggleCall
У меня такая ошибка:
Error: Call Device.setup() before connect
указывает на Device.__throwUnlessSetup.
private _throwUnlessSetup(methodName: string) {
if (!this.isInitialized) { throw new InvalidStateError(`Call Device.setup() before ${methodName}`); }
}
Как я понял, он не инициализировался успешно, даже подумал, что согласно вкладке сети он запросил все файлы dhtm, как побочное свидетельство инициализации.