Facebook SDK для Unity на Android — проблема с обратным вызовом от FB.Login

У меня возникли проблемы с входом в facebook-unity-sdk на устройстве Android. Когда я вхожу в систему и получаю обратный вызов, они возвращают это

FBResult.Text

{"is_logged_in":false,"user_id":"","access_token":""}

FBResult.Error

null

и FB.IsLoggedIn имеет значение null каждый раз после завершения входа в систему.

Я использую последнюю версию Facebook SDK (4.2.1) и Unity 4.2.

В журнале отладки

Send to Unity OnLoginCompleted({"cancelled":true})

person Peerawit Canthasaksiri    schedule 23.09.2013    source источник
comment
мы все еще тестируем это, но если вы хотите попробовать последнюю версию SDK, вот ссылка на нее: unite-friend-smash.parseapp.com/v4.2.4/FacebookSDK.unitypackage спасибо, что попробовали SDK!   -  person aaron    schedule 24.09.2013
comment
Примечание для 2014 года. Эта проблема связана с проблемой "работает, если у пользователя НЕ установлено приложение fb". Обратите внимание, что ››› ИНОГДА ‹‹‹ решение очень простое; вы забыли указать правильные значения на сайте developments.facebook. Брайан из FB любезно объясняет здесь (обратите внимание на его изображения) answers.unity3d.com/questions/543540/ Надежда это помогает кому-то, это настоящая дерьмовая проблема, если вы попадете в нее.   -  person Fattie    schedule 03.05.2014


Ответы (9)


Эти проблемы обычно вызваны двумя причинами:

Настройка ключа

Вы можете настроить свой logcat для фильтрации сообщений с тегом журнала «fb4a», и вы увидите базовое исключение Facebook Android SDK, выдающее исключение, в котором говорится, что ваш хеш-ключ не соответствует ни одному из сохраненных хэшей ключей.

Вы можете просто скопировать этот хэш и добавить его в панель разработчика Facebook.

Другие плагины

У нас есть новая бета-версия SDK v5.0.2, которая должна хорошо работать с другими плагинами.

Проверьте ответ Брайана в этой теме Как работать с Facebook SDK для Unity и Vuforia для Android?

person juraj    schedule 22.01.2014

Последняя версия SDK исправляет это и доступна для загрузки здесь: https://developers.facebook.com/docs/unity/downloads/

person benp    schedule 23.09.2013
comment
Спасибо benp, Но у меня еще эта проблема в V4.2.4, Как решить в этой версии? - person Peerawit Canthasaksiri; 30.09.2013
comment
Не могли бы вы отправить нам свой проект для отладки? Попробуйте [email protected], если вы просто хотите отправить его нам по почте. Спасибо за вашу помощь! - person aaron; 30.09.2013
comment
Я использую пример сцены из пакетов, и он показывает мне журнал отладки. - person Peerawit Canthasaksiri; 30.09.2013
comment
Недавно я попробовал учебник по Android SDK, и он может работать четко! но для Unity SDK все еще есть проблема. - person Peerawit Canthasaksiri; 30.09.2013

Я решил попробовать загрузить новый openssl из этого

http://gnuwin32.sourceforge.net/packages/openssl.htm

и измените новый хэш-ключ.

person Trouverdice    schedule 01.12.2013

та же проблема, я экспортирую тестовую сцену как есть и не работает с установленным приложением facebook.

Я использую SDK v4.2.4.

person user2830062    schedule 30.09.2013

Попробуйте обновить ваш openSSL и восстановить хеш-ключ, я застрял в этой проблеме на несколько дней, пытаясь снова и снова перепробовать все, что пришло мне в голову... Пока я не прочитал, что кто-то сделал это, я попробовал и волшебство! Все тестовые проекты, с которыми я пытался заставить FB SDK работать, работают нормально ;)

Я использовал вариант с этой страницы, если кому интересно.

Такая пустая трата времени, которой можно было бы избежать, если бы поле ошибки сообщало, что не так...

person met44    schedule 03.10.2013
comment
Спасибо @met44 за предложение, я пытаюсь обновить openssl, rm debug.keystore и получить новый, но проблема все еще есть. Я надеюсь, что это будет исправлено в следующих версиях в ближайшее время. - person Peerawit Canthasaksiri; 05.10.2013
comment
Видите ли вы действительный хейхэш в настройках Facebook в Unity? И вы подписали свое приложение с помощью хранилища ключей отладки? - person met44; 07.10.2013
comment
Да. Мой keyhash действителен в Unity и является результатом debug.keystore, но я не знаю, в чем моя вина. - person Peerawit Canthasaksiri; 07.10.2013
comment
Один из лучших способов проверить ваши настройки — создать новый проект и импортировать facebook sdk, оттуда пройти процесс настройки Facebook идентификатора приложения, имен классов, а также хранилища ключей и т. д. и установить демонстрационную сцену в качестве стартовая сцена. Затем запустите этот проект на своем устройстве, это самая простая форма, которую может принять проект facebook, и он действительно работает, когда все настроено правильно, поэтому, пока вы не заработаете, вы можете подумать, что что-то настроено не так, как должно... - person met44; 09.10.2013

Как насчет хранилища ключей выпуска, я подписываю свое приложение с помощью Unity и получаю хэш-ключ из хранилища ключей, созданного Unity, но та же ошибка, появляется логин, но is_logged_in: false

person user2872693    schedule 14.10.2013

Моя проблема теперь решена. Эта проблема связана с мульти-плагином в проекте. Теперь (я думаю) Facebook SDK не может использоваться с другим плагином, который требует основной активности для них на Android. Экспортируйте проект Android и перепроверьте AndroidManifest.xml и сохраните их для правильных вещей. Он должен иметь FBUnityActivity для однозадачности, чтобы многие плагины переопределяли их, чтобы facebook не мог получить сеанс при запуске игры. Надеемся, что в следующей версии этот SDK можно будет использовать с другим плагином. Спасибо всем за советы :)

person Peerawit Canthasaksiri    schedule 16.10.2013

Плагин Facebook Unity для Android плохо сочетается с другими плагинами, поскольку он переопределяет MainActivity, поэтому, если вы не запустите его первым (из AndroidManifest.xml), он не вернет никаких данных (информацию для входа, списки друзей) обратно в Unity. и к вашей игре.

Конечно, большинство других плагинов теперь не работают.

У меня есть собственный плагин (чистая java, скомпилированная в eclipse), который обрабатывает сохранение, IAP, уведомления и т. д., и я сначала запускаю этот плагин — чтобы плагин Facebook работал, вам нужно добавить небольшой фрагмент кода Facebook «Session» в onActivityResult в ваш собственный класс Main Activity:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    // Pass on the activity result to the helper for handling
    if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
        // not handled, so handle it ourselves (here's where you'd
        // perform any handling of activity results not related to in-app
        // billing...

        // Facebook callback

        if (Session.getActiveSession() != null) {
            Session.getActiveSession().onActivityResult(this, requestCode,
                    resultCode, data);
        }

        super.onActivityResult(requestCode, resultCode, data);
    } else {
    }
}

Для компиляции вам нужен FacebookSDK.jar, и я был так же удивлен, как и все, когда это сработало; но это не поможет, если вы используете сторонние плагины и не имеете доступа к их источнику.

Написание плагинов Unity для Android — это кошмар.

person user693375    schedule 29.11.2013

@user2830062 user2830062 перепроверяет ваш хеш-ключ. Когда вы получили правильный хеш-ключ, с каждым компьютером вам нужно получить новый хэш-ключ и добавить его на страницу разработчика в Facebook (список хэш-ключей)

person Long Pham    schedule 04.05.2014