Facebookの認証画面が一瞬だけ現れて、すぐに消える
現在AndroidとFacebookを連携させたアプリを作っており、ボタンを押すとFacebook認証を開始するようなプログラムを組んでいるのですが、なぜかボタンを押すとFacebookの認証画面と読み込み中の処理待ちダイアログが表示され、その後すぐに認証画面が消えてしまいます。しばらく色々と調べていると、onActivityResult
でauthorizeCallback
を呼んであげる必要があると分かり、そのコードを追加したのですが、それでも画面が一瞬だけ現れ、すぐに消えてしまいました。しかも、ログを見るとPostFacebook
クラスのDialogListener
内のonComplete
が呼ばれていました。なのになぜ認証画面が出てこないのでしょうか?これは非推奨のクラス(Facebook
)やメソッド(authorize
)を使っているから起こっている現象なのでしょうか?下記にコードを記していますので、どなたか分かる方がいればアドバイスをいただきたいです。すみませんが宜しくお願いします。
MainActivity
public void onClick(View v) {
switch (v.getId()) {
case R.id.facabook_button:
PostFacebook postFacebook = new PostFacebook(); {
postFacebook.shareFacebook(this);
}
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
PostFacebook.createFacebook().authorizeCallback(requestCode, resultCode, data);
}
PostFacebook
public class PostFacebook {
private static Facebook mFacebook;
}
public static Facebook createFacebook() {
return mFacebook;
}
public void shareFacebook(Activity activity) {
PostFacebook postFacebook = new PostFacebook(activity.getApplicationContext());
if (String.valueOf(postFacebook.getSession().getState()) == "CREATED_TOKEN_LOADED") {
postFacebook.share();
} else {
loginFacebook(activity);
}
}
public void loginFacebook(Activity activity) {
Facebook facebook = new Facebook(activity.getString(R.string.Facebook_AppId));
facebook.authorize(activity, new String[]{ "publish_actions" }, new Facebook.DialogListener() {
@Override
public void onComplete(Bundle values) {
Log.v("--->", "onComplete");
}
@Override
public void onFacebookError(FacebookError e) {
Log.v("--->", "onFacebookError");
}
@Override
public void onError(DialogError e) {
Log.v("--->", "onError");
}
@Override
public void onCancel() {
Log.v("--->", "onCancel");
}
});
}