FacebookConnect'i kullanarak kullanıcının facebook duvarına yazıyorum ancak createOauth2() yöntemi, kapsamı kendi izinleriyle geçersiz kılıyor.Facebook Graph Api kapsamının üzerine yazılmıştır codenameone
DÜZENLEME
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(); }
geri android cihazda çağrılan asla askPublishPermissions
arasında Logincall. Ayrıca app giriş yaparken hiç sormadım arkadaş listesi ve e-postaların izinlerini isteyin. FacebookConnect'in kaynak kodunda createOuth()
yöntemi bunları kapsam içine alıyor ancak bu izinlere ihtiyacım yok.
Çözüm:
Bunlar aynı sorunu olan herkes takip adımlardır. İlk önce emülatörden izin istemekte sorunum var. Bu yüzden izin almak için kendi Outh girişimi oluşturdum.
Android yapısı için.
- Yapı ipucu
android.facebook_permissions
anahtarını istediğiniz değerlerle ekleyin. Bu zorunlu bir adımdır. Sadece okuma iznini buraya ekleyin vepublish_action
iznini veya diğer yazma izinlerini değil. Yazma izni dışında bir izne ihtiyacınız varsa, facebook'un varsayılan izni olanpublic_profile
'u ekleyin. publish_actions
izni içinFacebookConenct.askPublishPermissions
'u kullanın.doLogin()
'u kullanırsanız, ilk önceaskPublishPermission
nedenimdeki hiçbir şey yapmadı. Bu yüzden,doLogin()
'u arayarakaskPublishPermission
'u kullanarak otomatik olarak giriş sayfasını çağırdım.
Soruyu kod ve daha fazla bilgi ile güncelledim – umuieme
Cevabım için bazı ayrıntıları ekledim. –
android.facebook_permissions ve diğer bazı şeyler, sorumu güncelleyeceğim sorunu çözdü. Ama hala girişte olduğu gibi emülatör için sorun olduğunu düşünüyorum sadece benim kapsamını geçersiz kılmak. Lütfen facebookConnect.createOuth() yöntemini kontrol edin. – umuieme