Видеовызов Agora Android получает код ошибки 101

#android #kotlin #agora.io

Вопрос:

Я интегрировал библиотеки видеовызовов Agora в проект Android. Когда я использую временный токен, видеовызов работает отлично, но если я создаю динамический токен, я получаю код ошибки 101. Я создал динамический токен в методе RtcTokenBuilder.

реализация ‘io.agora.rtc: full-sdk: 3.0.0’

Ссылка на класс RtcTokenBuilder: https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/java/src/main/java/io/agora/media/RtcTokenBuilder.java

Ссылка на RtcTokenBuilderSample: https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/java/src/main/java/io/agora/sample/RtcTokenBuilderSample.java

     RtcTokenBuilder token = new RtcTokenBuilder();
    int timestamp = (int) (System.currentTimeMillis() / 1000   expirationTimeInSeconds);
    String result = token.buildTokenWithUserAccount(appId, appCertificate, chenal, "0", RtcTokenBuilder.Role.Role_Publisher, timestamp);
    Log.e("live Token", "***************Token: tkn == "   result);
 

Ответ №1:

Код ошибки говорит о том, что идентификатор приложения, который использовался для генерации токена, не совпадает с тем, который проверяется при выполнении joinChannel вызова. Убедитесь, что у вас есть правильные AppID и appCertificate (которые находятся в https://console.agora.io / внутри проекта, который вы, возможно, уже создали.)


 public String getRtcToken(String channelName,  int roleValue, Long expiryDurationInSecs) {
    Long expiryTimestamp = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())   expiryDurationInSecs;
    RtcTokenBuilder builder = new RtcTokenBuilder();
    io.agora.media.RtcTokenBuilder.Role role = io.agora.media.RtcTokenBuilder.Role.Role_Subscriber;
    if (io.agora.media.RtcTokenBuilder.Role.Role_Publisher.initValue == roleValue) {
        role = io.agora.media.RtcTokenBuilder.Role.Role_Publisher;
    }

    return builder.buildTokenWithUid(this.appId, this.appCertificate, channelName, 0, role, expiryTimestamp.intValue());
}
 

Комментарии:

1. Когда я создал временный токен с консоли, он работает, но когда я пытаюсь использовать динамический токен (я упомянул в вопросе, как я создаю динамический токен), он не работает.

2. Вы заменили строки AppID и appCertificate в своем коде?

3. Да, я уже заменил AppID и appCertificate в строке.

4. Используйте token.buildTokenWithUid вместо token.buildTokenWithUserAccount . Обратитесь к коду в обновленном ответе.