카카오톡으로 간편로그인을 클릭하면 화면만 한번 깜빡이고 끝이납니다…
에러라던지 그런건 하나도 안뜨고요…원래 동의하기 창으로 넘어가야하는거 같은데…
제가 멀 잘못한건가요…?
소스는 대략
global…
public class GlobalApplication extends Application {
private static volatile GlobalApplication instance = null;
private static volatile Activity currentActivity = null;
private static class KakaoSDKAdapter extends KakaoAdapter {
/**
* Session Config에 대해서는 default값들이 존재한다.
* 필요한 상황에서만 override해서 사용하면 됨.
* @return Session의 설정값.
*/
@Override
public ISessionConfig getSessionConfig() {
return new ISessionConfig() {
@Override
public AuthType[] getAuthTypes() {
return new AuthType[] {AuthType.KAKAO_LOGIN_ALL};
}
@Override
public boolean isUsingWebviewTimer() {
return false;
}
@Override
public ApprovalType getApprovalType() {
return ApprovalType.INDIVIDUAL;
}
@Override
public boolean isSaveFormData() {
return true;
}
};
}
@Override
public IApplicationConfig getApplicationConfig() {
return new IApplicationConfig() {
@Override
public Activity getTopActivity() {
return GlobalApplication.getCurrentActivity();
}
@Override
public Context getApplicationContext() {
return GlobalApplication.getGlobalApplicationContext();
}
};
}
}
public static Activity getCurrentActivity() {
return currentActivity;
}
public static void setCurrentActivity(Activity currentActivity) {
GlobalApplication.currentActivity = currentActivity;
}
public static GlobalApplication getGlobalApplicationContext(){
if(instance == null)
throw new IllegalStateException("this application does not inherit com.kakao.GlobalApplication");
return instance;
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
KakaoSDK.init(new KakaoSDKAdapter());
}
}
프래그먼트 입니다.
public class TEST extends Fragment{
private Context mContext;
CallbackManager callbackManager;
private LoginButton loginButton;
SessionBack sessionBack;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sessionBack = new SessionBack();
Session.getCurrentSession().addCallback(sessionBack);
Session.getCurrentSession().checkAndImplicitOpen();
}
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
mContext = inflater.getContext();
View view = inflater.inflate(R.layout.fragment_facebook, container, false);
callbackManager = CallbackManager.Factory.create();
loginButton = (LoginButton) view.findViewById(R.id.login_button);
loginButton.setReadPermissions("email");
loginButton.setFragment(this);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
SharedPreferenceUtils.getInstance(mContext).setSharedPreference("USERID", accessToken.getUserId());
SharedPreferenceUtils.getInstance(mContext).setSharedPreference("TOKEN", accessToken.getToken());
Log.e("TEST", "loginResult : " + loginResult);
}
@Override
public void onCancel() {
Log.e("TEST", "onCancel : " );
}
@Override
public void onError(FacebookException exception) {
Log.e("TEST", "FacebookException : " + exception);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.e("TEST", "requestCode : " + requestCode + "resultCode : " + resultCode + "data : " + data);
if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)) {
return;
}
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onDestroy() {
super.onDestroy();
Session.getCurrentSession().removeCallback(sessionBack);
}
public class SessionBack implements ISessionCallback {
@Override
public void onSessionOpened() {
Log.e("TEST", "onSessionOpened : " );
redirectSignupActivity();
}
@Override
public void onSessionOpenFailed(KakaoException exception) {
if(exception != null) {
Log.e("TEST", "onSessionOpenFailed : " + exception);
}
}
}
public void redirectSignupActivity() {
Log.e("TEST", "redirectSignupActivity :성공인가요?");
}
}