2013-09-27 4 views
9

Я, кажется, имеющих один и тот же вопрос, как обсуждалось в этом вопросе: Facebook SDK for Unity on Android - Trouble about callback from FB.LoginFacebook Unity SDK на Android - Войти терпит неудачу, когда FB App установлен

На Android при установке регулярное приложение Facebook, вызывает в FB.Login() с помощью Unity SDK предложит пользователю принять разрешения приложения и если приложение будет одобрен обратный вызов отапливают: FBResult.Text

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

FBResult.Error

null

Когда приложение Facebook установлен веб-поток используется и работает отлично, я тем не менее попытался это с v4.2.4 и v4.2.2 в SDK Unity.

Любые другие советы по его устранению?

EDIT: Следует также отметить, что я попробовал это на 2-х различных устройств (Galaxy Note 10.1 и Nexus 7)

Заранее спасибо!


Примечание к 2014 году. В некоторых случаях проблема в том, что вы забыли настройки на developers.facebook. Брайан объясняет это здесь с изображениями: http://answers.unity3d.com/questions/543540/facebook-sdk-v424-android-login-not-working.html Смутно это БУДЕТ РАБОТАТЬ (!) На устройствах БЕЗ приложения fb, если вы полностью забыли настройки. Что касается актуальной проблемы, к счастью есть решение, даже если вы используете Unity на Mac и просто: http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

Будет ли это возможно для Вас, чтобы отправить нам свой проект таким образом, мы можем попытаться отлаживать его? Используйте [email protected], если вы хотите отправить нам ссылку для загрузки (или просто прикрепите ее). Спасибо за подробный отчет! – aaron

+1

Извините, но это уже исправлено, но stackoverflow не хотел, чтобы я уже отвечал на свой вопрос. Возможно, был бы более интуитивный способ вернуть эту ошибку в Unity SDK? :) – Brizee

+0

@BrianBeacom Привет, я столкнулся с той же проблемой с плагином. Даже ввел hashkey, который входит в журнал в консоль разработчика. НО Я очень неуверен в том, как это сделать. Некоторые темы, предложенные --- -> Приложение FB должно быть обновлено до последнего. -> Хэш-код, сгенерированный в logcat, должен быть введен в консоль dev. -> Нам нужно создать хранилище ключей (наше собственное) и поместить сгенерированный hashkey в приборную панель. Я сделал все шаги, и все же я встал в ту же проблему. Возможно, вы можете направить меня на это. –

ответ

5

Ach чувствовать себя так глупо, в конце концов удалось решить это сам, развернув к посреднику Google Android Проект, я был в состоянии использовать LogCat, чтобы получить больше полезную messsage ошибки:

remote_app_id не соответствует сохраненную ID

Оттуда я нашел эту тему, относящуюся к стандартной SDK Android: Android Facebook SDK 3.0 gives "remote_app_id does not match stored id" while logging in

И, наконец, решить эту проблему путем замены ключа хэша с полученным этим фрагментом кода

try { 
PackageInfo info = getPackageManager().getPackageInfo(
     "com.facebook.samples.loginhowto", PackageManager.GET_SIGNATURES); 
for (Signature signature : info.signatures){ 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
} 
} catch (NameNotFoundException e) { 
} catch (NoSuchAlgorithmException e) { 
} 

Заменив com.facebook.samples.loginhowto с вашим собственным именем пакета конечно

Источник: https://stackoverflow.com/a/14421260/2823496

Кажется, что правильная клавиатура, через командную строку или через Unity, зависит от того, правильная версия openssl установлена ​​(и хранится в PATH), но не знаю, какая версия. (попробовал один в связанном ответе) Таким образом, возглавляет кого-то, кто борется с этим.

Примечание - это почти невозможно сделать, если вы используете Mac для развития Unity.Вот к счастью, простое решение в этом случае http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

Не могли бы вы рассказать мне когда вы поместили этот фрагмент кода? Я пытаюсь помещать его в классы, генерируемые единством (UnityPlayerActivity, UnityPlayerNativeActivity, UnityPlayerProxyActivity), но ничего не регистрируется. –

+1

@ Álvaro А это немного сложно, часть того, как работает плагин Facebook, - это создать FBUnityPlayerActivity и запустить запросы через это. Поэтому вам нужно будет изменить файл manifest.xml так, чтобы: <фильтр-замысел> Brizee

+0

Bah, Markdown не был моим другом, извините, надеюсь, что вы сможете получить фрагменты кода. :) – Brizee

0

У меня была такая же ошибка. И я удалил приложение facebook. Мое приложение работает отлично


ЕЩЕ ЧТО: https://stackoverflow.com/a/23446140/294884

+0

Поздравляю моего друга, вы в значительной степени повторили вопрос :) Нет, если бы это было просто для моего использования это было бы неплохо, к сожалению, я не мог позволить ограничить рынок своим приложением тем, у кого нет Facebook. См. принятый ответ выше, если вы хотите решить его самостоятельно. :) – Brizee

+0

Это проблема, которую я должен был решить, когда я и точный ключевой хэш и добавьте его в Facebook/приложение для разработчиков facebook –

+0

@longpham Привет, я столкнулся с той же проблемой с плагином. Даже ввел hashkey, который входит в журнал в консоль разработчика. НО Я очень неуверен в том, как это сделать. Можете ли вы помочь мне в этом. Буду рад Спасибо в Advance. –

Смежные вопросы