Ale*_*kin 6 sdk android facebook single-sign-on
我正在写一个应该将照片上传到Facebook的Android应用程序.
除了一件事,一切都很好.当我第一次调用Facebook.authorize()方法时,Facebook对话框显示了请求的权限和"允许"/"不允许"按钮.那没关系.但是当我在非常时间运行我的应用程序时,我有相同的对话框,但有消息说我的应用程序已经允许并建议按下OK按钮.
有没有办法避免这第二个对话?在某些情况下我应该跳过授权方法吗?
我尝试在授权方法之前调用Facebook.isSessionValid()方法,但这没有帮助.
这是我的简化代码:
mFacebook = new Facebook(APPLICATION_ID);
mFacebookAsync = new AsyncFacebookRunner(mFacebook);
if (mFacebook.isSessionValid()) {
uploadPictureFile();
}
else {
mFacebook.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
@Override
public void onError(DialogError e) {
Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook dialog error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
@Override
public void onComplete(Bundle values) {
uploadPictureFile();
}
@Override
public void onCancel() {Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook authorization cancelled.", Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.谢谢.