Android: войдите в систему через Twitter/ поделитесь через Twitter. Приложение переходит на домашний экран Twitter вместо экрана входа в систему.

У нас есть приложение, которое поддерживает нормальный вход в систему, используя действующий идентификатор электронной почты, а также используя Twitter. Мы поддерживаем пост твиты с помощью нашего приложения.

Перед публикацией твита я проверяю сессию в Твиттере. Если нет активного сеанса, я перемещаю пользователя на экран входа в Twitter, вызывая метод TwitterAuthClient.authorize(). После авторизации пользователь может видеть окно Tweet Composer, где пользователь может создавать и публиковать твиты. Поток работает правильно большую часть времени. Но иногда Twitter SDK открывает начальный экран Twitter https://drive.google.com/file/d/0Bz670htOa0h6X1NPajNLSS1YVzNvN2F1VWh2WEhzR0N0YTc0/view?usp=sharing вместо https://drive.googleTOFVXVXWx0h0h0h0h0h0R0R0R0R0R0R0R0R0R0R0R0R0R0R0W0R0R0R0R0R0R0R0SB посмотреть? usp = экран обмена. Из-за этого обратный вызов не возвращается в мое приложение после входа в систему. Поэтому я не могу чирикать.

ПРИМЕЧАНИЕ. На моем устройстве установлено приложение Twitter, а активный сеанс Twitter отсутствует.

Код:

private void postViaTwitter() {
  if (Twitter.getSessionManager().getActiveSession() != null ||
    !(Utils.isAppPresent(AppConstant.TWITTER_PACKAGE_NAME, this))) {
URL url = null;
try {
    url = new URL(UrlUtils.APP_URL);

    TweetComposer.Builder tweetComposer = new TweetComposer.Builder(this)
            .text(getString(R.string.share_content_description))
            .url(url);
    tweetComposer.show();

} catch (MalformedURLException e) {
    Log.e("Exception", e.getMessage(), e);
}
} else {
 loginAndShareUsingTwitter();
   }
}

private void loginAndShareUsingTwitter() {
TwitterAuthClient client = new TwitterAuthClient();
    client.authorize(this, new com.twitter.sdk.android.core.Callback<TwitterSession>() {
    @Override
    public void success(Result<TwitterSession> result) {
        if (result != null) {
            TwitterSession session = result.data;
            if (session != null) {
                postViaTwitter();
            }
        }
    }

    @Override
    public void failure(TwitterException exception) {
    }
});

}

0 ответов

Другие вопросы по тегам