が facebook のログイン ボタンであるプログラムを作成しました。 は facebook のログイン ページをロードしますが、瞬時に制御が同じに戻ります。ログインボタンを含むウィンドウ... また、同じプログラムがエミュレータ上で細かく実行されています。
質問する
259 次
2 に答える
1
Facebook 開発者 API ドキュメントを参照してください。
問題は Anshuman が言ったように、電話に既に SSO があり、再度認証しようとすると問題が発生することですonActivityResult
。特別な facebook のauthorizeCallback
機能をオーバーライドして実行する必要があります。
次のようになります。
facebook.authorize(SinglePost.this, permissions,
new DialogListener() {
@Override
public void onComplete(Bundle values) {
// control comes here if the login was successful
// Facebook.TOKEN is the key by which the value of
// access token is stored in the Bundle called
// 'values'
Log.d("COMPLETE", "AUTH COMPLETE. VALUES: "
+ values.size());
Log.d("AUTH TOKEN",
"== " + values.getString(Facebook.TOKEN));
updateStatus(values.getString(Facebook.TOKEN));
}
@Override
public void onFacebookError(FacebookError e) {
Log.d("FACEBOOK ERROR",
"FB ERROR. MSG: " + e.getMessage()
+ ", CAUSE: " + e.getCause());
}
@Override
public void onError(DialogError e) {
Log.e("ERROR", "AUTH ERROR. MSG: " + e.getMessage()
+ ", CAUSE: " + e.getCause());
}
@Override
public void onCancel() {
Log.d("CANCELLED", "AUTH CANCELLED");
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("onActivityResult", "onActivityResult");
facebook.authorizeCallback(requestCode, resultCode, data);
}
于 2012-05-07T07:57:07.217 に答える