#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
. Обратитесь к коду в обновленном ответе.