2011-08-09 14 views
1

次の方法を使用して私のアプリケーションデータを共有します しかし、ユーザーがメイン画面をクリックすると、強制的にfacebook connectを終了します。BlackBerryは強制的にfacebook接続を仲介します

public class FacebookIntegration { 

    private static User user; 
    private static String NEXT_URL = "http://www.facebook.com/connect/login_success.html"; 
    private static String APPLICATION_ID ; 
    private static String APPLICATION_SECRET ; 
    private static String[] PERMISSIONS = Facebook.Permissions.USER_DATA_PERMISSIONS; 
    public static boolean posted = false; 
    private static String[] postPermissions = Facebook.Permissions.PUBLISHING_PERMISSIONS; 
    private static SharePopup _obj; 
    private static boolean exception = false; 

    public static boolean integrate(SharePopup obj) { 

     _obj = obj; 
     ApplicationSettings as = new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, PERMISSIONS); 
     ApplicationSettings as2 = new ApplicationSettings(null, APPLICATION_ID, APPLICATION_SECRET, PERMISSIONS); 

     Facebook fb = Facebook.getInstance(as); 

     _obj.close(); 
     try { 
      user = fb.getCurrentUser(); 
     } catch (FacebookException e1) { 

      e1.printStackTrace(); 
      exception = true; 
     } 
     if (!exception) { 
      try { 

       fb.getCurrentUser(new BasicAsyncCallback() { 
        public void onComplete(com.blackberry.facebook.inf.Object[] objects, final java.lang.Object state) { 
         FacebookIntegration.this.user = (User) objects[0]; 
         Vector prayerTimes = (Vector) PrayerTimesDTO.getPrayerTimes(); 
         StringBuffer post = new StringBuffer("avbc"); 

         user.publishStatus(post.toString()); 

         posted = true; 

         user.publishPost("stream.publish", "published through the Facebook API", APPLICATION_SECRET, null, null, null, user.getId()); 

        } 

        public void onException(final Exception e, final java.lang.Object state) { 
         e.printStackTrace(); 

        } 
       }); 

      } catch (FacebookException e) { 
       e.printStackTrace(); 
      } finally { 
       fb.logout(true); 


      } 
     } 
     return true; 

    } 


} 

答えて

0

最初に投稿してから熟考しています。 Facebookのオブジェクトが何をしているか知る必要があるので、誰もあなたを助けることはできないと私は思います。それはあなたが接続を閉じる必要があると思われる場所です。次のように

public boolean onClose() { 
    FacebookIntegration.closeConnection(); 
    return super.onClose(); 
} 



B.変更FacebookIntegration:あなたのMainScreenクラスで

0

A.は、OnCloseの関数をオーバーライドするクラスの静的フィールドとして

  1. 入れFacebookのオブジェクトを

    private static Facebook fb;

  2. 変更の行:Facebook fb = Facebook.getInstance(as);
    fb = Facebook.getInstance(as);

  3. なるように、次のようにFacebookIntegrationcloseConnectionメソッドを追加します。

    public static void closeConnection() { fb.logout(true); }

+0

しかし、私はそれを持って一度ログアウトしたいですログインしても画面が閉じるたびにログアウトされません。どうすれば完了しますか? –

+0

ユーザーがメイン画面をクリックすると、OSがonClose()メソッドを起動します。 –

+0

@AshrafBashir、Blackberry + Facebook SDKのサンプルを教えてください。 [email protected]に渡してください。また私の質問を参照してくださいhttp://stackoverflow.com/questions/12962248/facebook-oauth-implementation-for-blackberry –

関連する問題