2012-03-08 1 views
1

私のアプリを実行するたびにFacebookに接続しようとするたびにキャンセルされます。それはすでに自動化されており、私は通常のFacebookアプリに接続することができます。私は今、約2日間の解決策を探していて、何も見つけることができません。これは本当に私のアプリケーションを終了から私を保持する唯一の問題です...うまくいけば、私はいくつかの答えを得ることができます。私はここでは、このFacebook SDKAndroid - Facebook Cancels

を使用しています

は私のFacebookがコード許可している:ここでは

public void authFB(){ 
    Log.i("IN","FB - Authorizing"); 
    fb.authorize(this, new String[]{ "publish_stream" }, new DialogListener(){ 
     @Override 
     public void onComplete(Bundle values) { 
      SharedPreferences.Editor editor = prefs.edit(); 
      editor.putString("access_token", fb.getAccessToken()); 
      editor.putLong("access_expires", fb.getAccessExpires()); 
      editor.putString("post_id",values.getString("post_id")); 
      editor.commit(); 
      Log.i("IN","Login Successful"); 
      checkFB(); 
     } 
     @Override 
     public void onFacebookError(FacebookError e) { 
      Log.i("IN","Login UnSuccessful - fb error"); 
      e.printStackTrace(); 
      checkFB(); 
     } 
     @Override 
     public void onError(DialogError e) { 
      Log.i("IN","Login UnSuccessful - error"); 
      e.printStackTrace(); 
      checkFB(); 
     } 
     @Override 
     public void onCancel() { 
      Log.i("IN","Login UnSuccessful - cancel"); 
      checkFB(); 
     } 
    }); 
} 

を私のonCreateです:

super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    prefs = getPreferences(MODE_PRIVATE); 
    String access_token = prefs.getString("access_token", null); 
    //String post_id = prefs.getString("post_id",null); 
    long expires = prefs.getLong("access_expires",0); 
    if(access_token != null){ 
     fb.setAccessToken(access_token); 
    } 
    if(expires != 0){ 
     fb.setAccessExpires(expires); 
    } 

    if(!fb.isSessionValid()){ 
     authFB(); 
    } 

私が間違っているかについてZEROのアイデアを持っています。私は今、二つの異なる携帯電話でそれを試してみましたが、これは私が手にデバッグです:

03-07 18:18:43.460: INFO/IN(6741): Login UnSuccessful - cancel 

onCancelが呼び出されていることを意味します。

ありがとうございました。

答えて

1

自分で修正しました。 私は私が私の活動のための私のマニフェストにこれを持っていたので、このエラーを取得保管:

   android:launchMode="singleInstance" 

私はこれを掲示していますうまくいけば、それは将来的に誰かを助けるため。

エラーが発生した理由は、secondInstance(duh)を作成しようとしたためではないためです。

+0

twitter4jが認証するにはsingleInstanceが必要ですが、同じアクティビティでtwitterとfacebookの認証をどのように処理できますか? –

+1

@CassioLandim Parse.comとそのfacebookとtwitterの実装を使用してください。そしてBrandonに、ありがとう!!!それに多くの時間を無駄にした。 – Warpzit