Мой Android-проект потерпел крах, когда я позвонил token.jwt для чата twilio - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь сгенерировать токен доступа для чата twilio, но у меня возникла эта ошибка: я пытался выяснить, откуда возникла ошибка, но не могу ее выяснить.Я буду очень признателен за вашу помощь.Спасибо

E/AndroidRuntime: FATAL EXCEPTION: main
                      Process: com.zihron.projectmanagementapp, PID: 16355
                      java.lang.Error: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl not found
                          at javax.xml.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:744)
                          at javax.xml.bind.DatatypeConverter.<clinit>(DatatypeConverter.java:78)
                          at javax.xml.bind.DatatypeConverter.printBase64Binary(DatatypeConverter.java:547)
                          at io.jsonwebtoken.impl.Base64Codec.encode(Base64Codec.java:24)
                          at io.jsonwebtoken.impl.Base64UrlCodec.encode(Base64UrlCodec.java:22)
                          at 
 io.jsonwebtoken.impl.AbstractTextCodec.encode(AbstractTextCodec.java:31)
                          at io.jsonwebtoken.impl.DefaultJwtBuilder.base64UrlEncode(DefaultJwtBuilder.java:314)
                          at io.jsonwebtoken.impl.DefaultJwtBuilder.compact(DefaultJwtBuilder.java:282)
                          at com.twilio.jwt.Jwt.toJwt(Jwt.java:100)
                          at ZihronChatApp.token.TokenGenerator.getToken(TokenGenerator.java:34)
                          at com.zihron.projectmanagementapp.ChatActivity.onCreateView(ChatActivity.java:43)

У меня есть мои данные ниже:

public  AccessToken getToken() {
        // Required for all types of tokens
        String twilioAccountSid ="AC601f2c7***7ed***640***264c***d0d";
        String twilioApiKey = "SK684***dda***c81****6c4a****093**";
        String twilioApiSecret ="96****dbc06****b74d50***b9***3*4";
        String serviceSid="IS***a29****e24****5d****4b20**3e*";

        String identity = "joshua.hamilton@gmail.com";

        ChatGrant grant = new ChatGrant();
        grant.setServiceSid(serviceSid);

        AccessToken token = new AccessToken.Builder(twilioAccountSid, 
       twilioApiKey, twilioApiSecret)
                .identity(identity).grant(grant).build();

        Log.e("++==--",""+token.toJwt());

        //.identity(identity).grant(grant);

     return token;
    }

1 Ответ

0 голосов
/ 04 марта 2019

Разработчик Twilio здесь.

Java-библиотека Twilio не предназначена для использования в проектах Android.

Проблема заключается в том, что вы не должны хранить свои учетные данные в своем приложении.Злонамеренный пользователь может декомпилировать ваше приложение, взять ваши учетные данные и злоупотребить ими.

Вместо этого вам следует создать сервер (или использовать некую безсерверную среду, такую ​​как Функции Twilio ), которая может работатьэтот код и вернуть токен.Затем вы должны сделать HTTP-запрос из вашего приложения Android, чтобы получить этот токен.Проверьте Программируемый чат Twilio для Android * Быстрый запуск , чтобы увидеть, как это делается.

...