Ich versuche, auf der Facebook-Wand des Benutzers mit FacebookConnect zu posten, aber die Methode createOauth2() -Methode überschreibt den Bereich durch seine eigenen Berechtigungen.Facebook Graph Apiscope wird überschrieben codenameone
EDIT
if (fb.isNativeLoginSupported()) { Dialog.show("native", "Yes", "Ok", null); if (!fb.hasPublishPermissions()) { Dialog.show("permission", " no publish permission", "ok", null); fb.askPublishPermissions(new LoginCallback() { @Override public void loginSuccessful() { Dialog.show("permission", "accessed: " + fb.hasPublishPermissions(), "Ok", null); System.out.println("permission: " + fb.hasPublishPermissions()); token = fb.getAccessToken().getToken(); PhotoShare share = new PhotoShare(); share.sendPhoto(token, id); } @Override public void loginFailed(String errorMessage) { System.out.println("failed permission: " + errorMessage); Dialog.show("permission error", errorMessage, "Ok", null); } }); } else { Dialog.show("permission", "publish permission", "ok", null); PhotoShare share = new PhotoShare(); share.sendPhoto(token, id); } } else { Dialog.show("permission", "No native support", "Ok", null); fb.setScope("publish_actions"); fb.setCallback(new LoginCallback() { @Override public void loginSuccessful() { token = fb.getAccessToken().getToken(); PhotoShare share = new PhotoShare(); share.sendPhoto(token, id); } }); fb.doLogin(); }
Die Logincall Rückseite askPublishPermissions
wird nie auf dem Android-Gerät genannt. Auch beim Login der App nach Berechtigungen von Freelist und E-Mail fragen, die ich nie gefragt habe. Im Quellcode von FacebookConnect fügt die Methode createOuth()
sie im Bereich hinzu, aber ich brauche diese Berechtigungen nicht.
Lösung:
Dies sind die Schritte, die ich für jemand mit dem gleichen Problem gefolgt. Zuerst fand ich ein Problem mit dem Emulator um Erlaubnis fragen. Also habe ich mein eigenes Outh-Login erstellt und um die Erlaubnis gebeten.
Für den Android Build.
- Fügen Sie den Build-Hinweis hinzu
android.facebook_permissions
Schlüssel mit Wert die Berechtigungen, die Sie möchten. Dies ist ein Muss. Geben Sie hier nur die Leseberechtigung und nicht diepublish_action
Berechtigung oder andere Schreibrechte ein. Wenn Sie keine andere Erlaubnis als Schreibberechtigung benötigen, fügen Siepublic_profile
hinzu. Dies ist die Standardberechtigung von facebook. - Verwenden Sie
FacebookConenct.askPublishPermissions
für die Erlaubnis. - Wenn Sie zuerst
doLogin()
verwenden dann aus irgendeinem GrundaskPublishPermission
tat nichts in meinem Fall. Also habe ichaskPublishPermission
ohne AufrufdoLogin()
, die automatisch die Login-Seite aufgerufen.
Ich habe die Frage mit Code aktualisiert und weitere Informationen – umuieme
Ich habe einige Details zu meiner Antwort hinzugefügt. –
android.facebook_permissions und einige andere Dinge lösten das Problem, das ich in meiner Frage aktualisieren werde. Aber ich denke immer noch, es gibt ein Problem für den Emulator, da beim Login nur den Umfang von mir außer Kraft setzt. Bitte überprüfen Sie facebookConnect.createOuth() -Methode. – umuieme