1

Facebook Android SDK を 2.0 から 3.0 にアップグレードしようとしましたが、問題が発生しました。私の場合は次のとおりです。

私はウェブビューを持っており、ユーザーが「Facebook ログイン」をクリックすると次のコードを実行します。

SharedPreferences mPrefs = act.getPreferences(Context.MODE_PRIVATE);
String access_token =  mPrefs.getString("access_token", null);
session = Session.getActiveSession();
if (session == null){
     session = new Session(act.getApplicationContext());
     if(access_token != null){
          SharedPreferences.Editor editor = mPrefs.edit();
      editor.putString("access_token", null);
      editor.commit();
      AccessToken accessToken = AccessToken.createFromExistingAccessToken(access_token,null, null, null, null);
          session.open(accessToken, callback);
      Session.setActiveSession(session);
     }
}
Session.OpenRequest request = new Session.OpenRequest(act);
String[] permissions = {"email, user_likes, user_checkins, publish_checkins, publish_stream"};
request.setPermissions(Arrays.asList(permissions));
request.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
request.setCallback(callback);
session.openForPublish(request);

同じクラス(アクティビティを拡張する)で、次のコードを取得しました:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}

ユーザーがボタンをクリックすると、すべて正常に動作します。Facebook ダイアログが開き、権限が必要になり、ダイアログが閉じます。問題は、インスタンス化されたものを返す代わりに、Session.getActiveSession() が null を返すことです。詳細には、これが返されます:

{who=null, request=64206, result=-1, data=Intent { (has extras) }}
4

0 に答える 0