2016-03-31 12 views
1

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.

  1. Yapı ipucu android.facebook_permissions anahtarını istediğiniz değerlerle ekleyin. Bu zorunlu bir adımdır. Sadece okuma iznini buraya ekleyin ve publish_action iznini veya diğer yazma izinlerini değil. Yazma izni dışında bir izne ihtiyacınız varsa, facebook'un varsayılan izni olan public_profile'u ekleyin.
  2. publish_actions izni için FacebookConenct.askPublishPermissions'u kullanın.
  3. doLogin()'u kullanırsanız, ilk önce askPublishPermission nedenimdeki hiçbir şey yapmadı. Bu yüzden, doLogin()'u arayarak askPublishPermission'u kullanarak otomatik olarak giriş sayfasını çağırdım.

cevap

0

Nasıl izin istediniz?

Yazmak için askPublishPermissions numaralı telefonu aramanız gerektiğini farkettiniz mi? Bir web uygulamasından farklı olarak, yerel bir uygulamanın yazma izni istemesi gerekir.

android.facebook_permissions yapı ipucunu here açıklandığı şekilde ayarladınız mı?

+0

Soruyu kod ve daha fazla bilgi ile güncelledim – umuieme

+0

Cevabım için bazı ayrıntıları ekledim. –

+0

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