2013-09-27 6 views
9

Ich erscheine das gleiche Problem werden, wie sie in dieser Frage diskutiert: Facebook SDK for Unity on Android - Trouble about callback from FB.LoginFacebook Unity SDK auf Android - Anmeldung schlägt fehl, wenn FB App installiert

Auf Android, wenn die reguläre Facebook-App installiert ist, ruft FB.Login(), um die Einheit der SDK-Eingabeaufforderung, den Benutzer mit Berechtigungen für die App zu akzeptieren und, wenn die App genehmigt wird der Rückruf wird ausgelöst, mit: FBResult.Text

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

FBResult.Error

null

Wenn der Facebook-App die Strömungsbahn installiert verwendet wird und funktioniert gut, ich habe versucht, aber dies mit V4.2.4 und V4.2.2 dem Unity-SDK.

Gibt es noch weitere Ratschläge, um das Problem zu beheben?

EDIT: Sollte auch beachten, habe ich versucht, diese auf zwei verschiedene Geräte (Galaxy Note 10.1 und Nexus 7)

Vielen Dank im Voraus!

Ein Hinweis für 2014. In einigen Fällen ist das Problem sehr einfach, dass Sie die Einstellungen auf developers.facebook vergessen haben. Brian erklärt es hier mit Bildern: http://answers.unity3d.com/questions/543540/facebook-sdk-v424-android-login-not-working.html Verwirrend wird es funktionieren (!) Auf Geräten OHNE die fb App, wenn Sie die Einstellungen komplett vergessen haben. In Bezug auf das eigentliche Problem, zum Glück gibt es eine Lösung auch wenn Sie Unity auf Mac verwenden und es ist ganz einfach: http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

es möglich wäre, dass Sie uns Ihr Projekt zu senden, damit wir versuchen können, es zu debuggen? Verwenden Sie [email protected], wenn Sie uns einen Link zum Herunterladen senden möchten (oder einfach anhängen). Danke für den ausführlichen Bericht! – aaron

+1

Sorry, hatte es schon behoben, aber stackoverflow wollte nicht, dass ich meine eigene Frage beantworte. Vielleicht gibt es eine intuitivere Möglichkeit, diesen Fehler jedoch an Unity SDK zurückzugeben? :) – Brizee

+0

@BrianBeacom Hi Ich stehe vor dem gleichen Problem mit dem Plugin. Sogar den Hash-Schlüssel, der in dem Protokoll in der Entwicklerkonsole kommt, eingegeben. ABER ich bin mir sehr unsicher, wie ich das machen soll. Einige Themen vorgeschlagen --- -> Die FB-App sollte auf den neuesten Stand gebracht werden. -> Der im Logcat erzeugte Hashkey sollte in die Dev-Konsole eingegeben werden. -> Wir müssen einen eigenen Schlüsselspeicher erstellen und den generierten Hash-Schlüssel in das Dashboard einfügen. Ich habe alle Schritte und immer noch bin ich in das gleiche Problem stecken. Vielleicht kannst du mich dazu führen. –

Antwort

5

Ach fühle mich so dumm, gelang es schließlich, es selbst zu lösen, indem an einem Intermediär Bereitstellung von Google Android Projekt konnte ich logcat verwenden, um einen nützlichen Fehler messsage zu erhalten:

remote_app_id nicht id

Von dort gespeichert überein ich dieses Thema auf den Standard-Android-SDK im Zusammenhang gefunden: Android Facebook SDK 3.0 gives "remote_app_id does not match stored id" while logging in

und löste schließlich das Problem, indem Sie den Key Hash mit dem von diesem Codefragment erhalten einen Ersatz

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) { 
} 

Ersetzen com.facebook.samples.loginhowto mit Ihrem eigenen Paketnamen natürlich

Quelle: https://stackoverflow.com/a/14421260/2823496

Es scheint, die richtige Schlüsselübergabe, über die Befehlszeile oder durch Unity hängt davon ab, th Die richtige Version von openssl installiert (und in PATH gespeichert), aber keine Ahnung, welche Version das ist. (versuchte den in der verknüpften Antwort) So geht es zu jedem anderen, der damit zu kämpfen hat.


Hinweis - es ist fast unmöglich, dies zu tun, wenn Sie Mac für Unity-Entwicklung verwenden.Hier ist die glücklicherweise einfache Lösung in diesem Fall http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

Können Sie mir sagen Wann hast du dieses Code-Snippet eingefügt? Ich versuche, es auf die Klassen, die von Unity (UnityPlayerActivity, UnityPlayerNativeActivity, UnityPlayerProxyActivity) generiert werden, zu setzen, aber nichts wird protokolliert. –

+1

@ Álvaro Ah, es ist ein bisschen schwierig, ein Teil davon, wie das Facebook-Plugin funktioniert, ist es, die FBUnityPlayerActivity zu erstellen und Anfragen durch diese auszuführen. Sie müssen also die Datei manifest.xml folgendermaßen ändern: Brizee

+0

Bah, Markdown war nicht mein Freund Entschuldigung, hoffe, du kannst die Code-Schnipsel davon bekommen :) – Brizee

0

Ich hatte einen gleichen Fehler. Und ich habe Facebook-App entfernt. Meine app funktioniert gut


mehr dazu: https://stackoverflow.com/a/23446140/294884

+0

Glückwunsch, mein Freund, du hast die Frage ziemlich oft wiederholt :) Nein, wenn es nur war für meinen Gebrauch wäre das in Ordnung, leider konnte ich es mir nicht leisten, den Markt für meine App auf Leute zu beschränken, die kein Facebook installiert haben. Siehe oben die akzeptierte Antwort, wenn Sie es selbst lösen wollen. :) – Brizee

+0

Dies Problem musste ich lösen, wenn ich g et exact key hash und füge es zu Facebook/app auf facebook –

+0

@longpham Hallo Ich bin mit dem gleichen Problem mit dem Plugin konfrontiert. Sogar den Hash-Schlüssel, der in dem Protokoll in der Entwicklerkonsole kommt, eingegeben. ABER ich bin mir sehr unsicher, wie ich das machen soll. Können Sie mir dabei helfen? Ich werde froh sein, Danke im Voraus. –