Nano Hash - криптовалюты, майнинг, программирование

Авторизация socialauth-android прошла успешно с Facebook, но код подтверждения недействителен

Я использую socialauth-android, чтобы пользователи Android могли аутентифицировать себя на Facebook.

Моя проблема заключается в следующем:

Я могу успешно отобразить страницу входа в Facebook, где пользователь может ввести учетные данные и авторизовать мое приложение. Когда авторизация завершена, следует вызвать метод обратного вызова onComplete ReponseListener, связанный с SocialAuthAdapter.

Этого никогда не происходит, так как я получил исключение, говорящее, что код подтверждения недействителен, но я вижу на странице пользователя facebook, что мое приложение было авторизовано.

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

Я также не понял, является ли этот нулевой код токеном сеанса пользователя или чем-то еще.

Кто-нибудь сталкивался с подобной проблемой? Как это решить?

Я настроил свое приложение Facebook как собственное приложение для Android, как показано на рисунке **Конфигурация приложения Facebook**

Показана упрощенная версия кода.

public class LoginActivity extends Activity {

private static final String LOG_TAG = "LoginActivity";

SocialAuthAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    adapter = new SocialAuthAdapter(new ResponseListener());

            //  [.....]
}
/**
* This method is invoked when the user click on my Facebook button to initiate the
* the authentication process with Facebook
*/
protected void doLogin(){
    adapter.authorize(this, Provider.FACEBOOK);
}

private final class ResponseListener implements DialogListener {

   @Override
   public void onComplete(Bundle values) {

     // Variable to receive message status
     if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
       Log.d(LOG_TAG, "Authentication Successful"); 
     }

     adapter.getUserProfileAsync(new SocialAuthListener<Profile>() {

        @Override
        public void onError(SocialAuthError arg0) {

           Log.e(LOG_TAG, "Cannot retrieve user profile");

        }

        @Override
        public void onExecute(Profile profile) {

           Log.d(LOG_TAG, "ValidatedId = " + profile.getValidatedId()); 

     });

  }

Трассировка стека

Retrieving Access Token in verify response function
Verifying the authentication response from provider
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:114)
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:102)
at  org.brickred.socialauth.provider.FacebookImpl.doVerifyResponse(FacebookImpl.java:164)
at org.brickred.socialauth.provider.FacebookImpl.verifyResponse(FacebookImpl.java:154)
at org.brickred.socialauth.SocialAuthManager.connect(SocialAuthManager.java:183)
at  org.brickred.socialauth.android.SocialAuthDialog$SocialAuthWebViewClient$1.run(SocialAuthDialog.java:243)
at java.lang.Thread.run(Thread.java:856)
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
org.brickred.socialauth.android.SocialAuthError: Unknown Error

Ответы:


1

http://code.google.com/p/socialauth-android/issues/detail?id=52

Вы уже авторизовали свое приложение

Это было исправлено и ответил на аналогичный вопрос. Просто обновите банки и удалите предыдущие. Имейте в виду, что он (банки) все еще находится на стадии тестирования.

22.04.2013
  • Спасибо. Я проверил это, и новые (неофициальные) банки решили проблему. 29.04.2013
  • Пробовал новую версию 2.6 проблема вернулась. Даже при запуске примера приложения, поставляемого в socialauth-android-sdk-2.6.zip, я получаю с Facebook Проверочный код равен нулю, а с Twitter всегда отвечаю с неверным паролем. 11.07.2013
  • В socialauth-android-sdk-3.1.zip снова происходит с custom-ui 05.02.2014
  • Это также произойдет, если вы используете новую учетную запись facebook с образцом. 05.02.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..