Вход в Twitter не работает, если приложение Twitter не установлено на устройстве

Это может быть наиболее часто задаваемый вопрос на SO, но я все еще не могу решить свою проблему. Я проверил это, это и многие другие, но проблема все еще существует.

Если приложение Twitter установлено на устройстве пользователя, все работает нормально, но если его нет, я получаю следующее сообщение об ошибке.

Недопустимый json: URL-адрес обратного вызова не одобрен для этого клиентского приложения. Утвержденные URL-адреса обратного вызова можно настроить в настройках приложения com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Ожидается BEGIN_OBJECT, но в строке 1 столбце 1 путь $

Вызвано: java.lang.IllegalStateException: ожидался BEGIN_OBJECT, но был STRING в строке 1, столбце 1, пути $

com.twitter.sdk.android.core.TwitterApiException: HTTP-запрос не выполнен, статус: 403 на com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)

Я определил https://www.google.com как URL-адрес обратного вызова, и ниже приведена моя реализация.

//Activity Class

 Twitter.initialize(this);

 button.setCallback(new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> result) {

                TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                TwitterAuthToken authToken = session.getAuthToken();
                String token = authToken.token;
                String secret = authToken.secret;

                login(session);

            }

            @Override
            public void failure(TwitterException exception) {
                Log.d("Failure", "failure");
            }
        });

Strings.xml

   <string name="com.twitter.sdk.android.CONSUMER_KEY">---</string>
   <string name="com.twitter.sdk.android.CONSUMER_SECRET">---</string>

Грейдл

compile 'com.twitter.sdk.android:twitter:3.1.1'

ИЗМЕНИТЬ

Я также пробовал twittersdk:// и twitterkit-consumer-key:// в качестве URL-адреса обратного вызова.


person dev90    schedule 15.07.2018    source источник


Ответы (2)


Перейдите по этой ссылке здесь.

Нам нужно установить twittersdk:// внутри URL-адреса обратного вызова, как описано в ссылке, как показано ниже.

  1. перейдите в настройки своего приложения Twitter https://apps.twitter.com/ >> Tab
    настройки > > Заполните этот текст "twittersdk://" в поле URL-адреса обратного вызова
    (я нашел его в классе lib)
  2. Сохраните обновление
  3. проверьте свое приложение еще раз.

Это сработало, просто установив twittersdk:// в качестве одного URL-адреса обратного вызова, ничего не добавляя.

person fightingCoder    schedule 24.07.2018
comment
Это должно работать, как сказал @fightingCoder, но если вы посмотрите на исходный код здесь (github.com/twitter/twitter-kit-android/blob/), вы можете увидеть что CALLBACK_URL по умолчанию — twittersdk://callback, возможно, вы можете попробовать. - person Legion; 24.07.2018
comment
@fightingCoder Я уже использую twittersdk:// как callback URL и сталкиваюсь с той же проблемой. - person dev90; 26.07.2018
comment
@Legion: Когда я попробовал twittersdk://callback, он выдал мне сообщение об ошибке Not a valid URL. - person dev90; 26.07.2018

Попробуйте FireBase Ui auth sdk, я думаю, это будет лучшим решением для вас, читайте документы https://firebase.google.com/docs/auth/android/firebaseui

person Muhammad Hassaan    schedule 24.07.2018