Подпись токена недопустимого доступа Twilio (iOS - Swift) - PullRequest
0 голосов
/ 19 сентября 2018

Я использую последний SDK Twilio, который они выпустили на CocoaPods на сегодняшний день.Я пытаюсь реализовать функцию VOIP в своем приложении с помощью Twilio Programmable Voice.Мой бэкэнд - .net, который также использует последнюю версию Twilio Helper Library для C #.

Мой код клиента выглядит так:

fetchAccessToken { (accessToken: String) in

        TwilioVoice.register(withAccessToken: accessToken, deviceToken: deviceToken) { (error) in
            if let error = error {
                NSLog("An error occurred while registering: \(error.localizedDescription)")
            }
            else {
                NSLog("Successfully registered for VoIP push notifications.")
            }
        }

    }

В консоли я получаю следующее:

voipTestWithTwilio[2431:517236] [ERROR TwilioVoice] Inside register:deviceToken:completion:, failed to register for Twilio push notifications. Error:Invalid access token signature
voipTestWithTwilio[2431:517236] An error occurred while registering: Invalid access token signature

Это код C #, который фактически создает токен:

var grant = new VoiceGrant
            {
                OutgoingApplicationSid = outgoingApplicationSid
            };

            var grants = new HashSet<IGrant> { { grant } };

            var token = new Token(
                accountSid: accountSid,
                signingKeySid: apiKey,
                secret: apiSecret,
                identity: identity,
                grants: grants
            );
            return token.ToJwt();

Я искал проблему в Интернете, пока ничего не помогло.Я пытался связаться с ними, но не получил никакого ответа.Я также попытался пару раз создать новые ключи API и даже новый проект для Twilio.Кто-нибудь может сказать что-нибудь об этой проблеме?

ОБНОВЛЕНИЕ

Я добавил sid push-уведомлений в VoiceGrant, и теперь я получаю 403 Запрещено .

На странице с кодами ошибок Twilio это объясняется следующим образом: « Срок действия, указанный в токене доступа, превышает максимально допустимую продолжительность. », что, безусловно, не в моем случае.Однако я попытался передать параметр срока действия в конструкторе Token с различными значениями, которые не изменили результат.

Проблема все еще сохраняется.

1 Ответ

0 голосов
/ 25 сентября 2018

Я решил проблему.Это произошло потому, что мой сервер вернул токен с кавычкой.

Я помню печать (токен) на клиенте (iOS), чтобы увидеть, есть ли проблема с кодировкой или что-то в этом роде, и все, что я вижу, это правильный токен между кавычкамиМетки.Поскольку токен является строковым значением, я не обращал внимания на его часть в кавычках.Вот где я был неправ.

...