Я получаю следующее сообщение об ошибке при попытке зарегистрировать пользователя для клиента Twilio Voice:Ошибка в Push-уведомления при регистрации для IOS Twilio Voice Client
[ERROR VoiceClient] Inside register:deviceToken:completion:, failed to register for Twilio push notifications. Error:Failed to register. Code: 6.
Вот установка:
- Учетные записи Push зарегистрированы в Twilio. Был зарегистрирован сертификат VoIP Push, и этот тип нажатий находится только в режиме производства. Предположим, что идентификатор приложения - «com.bundle.appIDX».
- Серверная сторона настроена так, что правильные значения push-данных подаются на объект
IpMessagingGrant
. - На стороне клиента, следующий фрагмент кода выполняется:
VoiceClient.sharedInstance().register(withAccessToken: self.accessToken, deviceToken: self.voipToken)
- Это немедленно завершается с ошибкой выше.
- Использование версии '= 2.0.0-beta4' для TwilioVoiceClient и использование версии «2.9.1» для компонента на стороне сервера с двумя уровнями (https://github.com/twilio/twilio-node/tree/2.9.1).
- Пробовал играть с опцией «Использовать эти учетные данные для отправки в песочницу APN» и результата нет.
- Пробовал использовать профили разработки и подготовки на стороне клиента для идентификатора приложения «com.bundle.appIDX».
Действительно ли Twilio поддерживает VoIP-толкает? Если да, что может быть неправильным в этой настройке?
Thanks, Guven.
======= Edit после указания Виктора: теперь я вручную создать VoiceGrant. Я установил значение свойства ключа 'voice'
. Вот как выглядит грант:
{
outgoing_application_sid: 'APXX',
push_credential_sid: 'CRXX',
endpoint_id: 'XX'
}
По-прежнему возникает ошибка регистрации.
Я также попробовал этот формат, так это то, как он выглядит в 2.11.0 версии:
{ outgoing: { application_sid: 'APXX' },
push_credential_sid: 'CRXX',
endpoint_id: 'XX'
}
Любые идеи, где эта проблема может быть? Установка кода облака, а также:
var accessToken = new twilio.AccessToken("ACXX", "SKXX", "PPXX", accessTokenOptions);
var voiceGrantConfig = {"outgoingApplicationSid": "APXX",
"endpointId": clientName,
"pushCredentialSid": "CRXX"};
var voiceGrant = new VoiceGrant(voiceGrantConfig);
voiceGrant.key = "voice";
console.log(voiceGrant.toPayload());
accessToken.addGrant(voiceGrant);
var token = accessToken.toJwt();
Edit 2: Я на самом деле повышен до Twilio-узел 2.11.0 и по-прежнему получаю сообщение об ошибке. Вот маркер доступа прямо перед генерированием jwt.
AccessToken {
accountSid: 'ACXX',
keySid: 'SKXX',
secret: 'PPXX',
ttl: 86400,
identity: undefined,
nbf: undefined,
grants:
[ VoiceGrant {
outgoingApplicationSid: 'APXX',
outgoingApplicationParams: undefined,
pushCredentialSid: 'CRXX',
endpointId: 'XX' } ] }
Привет, Гувен, вы можете подтвердить, что используете токены доступа: https://www.twilio.com/docs/api/rest/access-tokens, а не токены возможностей: https://www.twilio.com/ документы/API/клиент/возможность-маркеры? –
@MeganSpeir Эй, Меган, да, я могу это подтвердить. Я добавляю IpMessagingGrant к токену доступа. Это может быть проблемой. 2.9.1 twilio-node не имеет VoiceGrant, он вводится только в версии 2.11.0. – Guven