[카카오톡 로그인 예제] 친절히 아주 조금이라도 써주시면 감사하겠습니다

안녕하세요 3일동안 계속 검색을 해보다가 정 모르겠어서 지푸라기 잡는 심정으로 글 올립니다.

우선 안드로이드 스튜디오에서 import module 을 하면 각 gradle의 count not find property 'xxx’하면서 import가 안됬어서

검색을 또 엄청 해보니 지금 안드로이드 스튜디오에서 import하면 오류만 난다고 해서

eclipse에서 import를 한 후 gradle로 변환하여 export하고 이것을 import module해 있는 상태입니다.

그 후 에 코드를 보고 있는데

SampleLogin에서

public class SampleLoginActivity extends Activity {
private SessionCallback callback;

/**
 * 로그인 버튼을 클릭 했을시 access token을 요청하도록 설정한다.
 *
 * @param savedInstanceState 기존 session 정보가 저장된 객체
 */
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_common_kakao_login);

    callback = new SessionCallback();
    Session.getCurrentSession().addCallback(callback);
    Session.getCurrentSession().checkAndImplicitOpen();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)) {
        return;
    }

    super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    Session.getCurrentSession().removeCallback(callback);
}

private class SessionCallback implements ISessionCallback {

    @Override
    public void onSessionOpened() {
        redirectSignupActivity();
    }

    @Override
    public void onSessionOpenFailed(KakaoException exception) {
        if(exception != null) {
            Logger.e(exception);
        }
    }
}

protected void redirectSignupActivity() {
    final Intent intent = new Intent(this, SampleSignupActivity.class);
    startActivity(intent);
    finish();
}

}

/**
* 로그인 버튼을 클릭 했을시 access token을 요청하도록 설정한다.
*
* @param savedInstanceState 기존 session 정보가 저장된 객체
*/

바로 요 부분에 관한 내용인데요

여기에 어떤 것을 넣어야 동작하게되나요? 정말 간단한 도움이라도 감사하겠습니다.

findViewById(R.id.com_kakao_login).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AuthRequest();

        }
    });

처럼 사용하고 싶어도 AuthRequest 인자로 무엇을 넘겨줘야 할지 모르겠습니다…

정말 간단한 로그인 기능만 구현하고 유저정보만 받아오려고 하는데 이걸 못해서 절절 메고 있네요…

고생하셨네요. 일단 gradle 사용법에 완전하게 익숙치 못해서 그러신거 같아요~ 도움이 되실지 모르겟지만 몇가지 가이드를 해드릴께요. 안드로이드 스튜디오를 사용하시는것 같아 안드로이드 스튜디오에서 하실 방법으로 말씀드리겠습니다.

  1. gradle로 제공되는 sdk를 사용하기 위해서 import module을 하실 필요가 없어요. 이미 maven repository에 저희가 바이너리를 upload를 해 두었구요. 원하시는 프로젝트의 build.gradle에서 dependencies부분에 해당 모듈을 기술만 해주시면 됩니다. 그러기 위해선 저희 maven repository의 경로를 설정해 주셔야 하는데 아래 코드를 참고하세요

build.gralde파일은 프로젝트 root에 한개, 그리고 만드려는 application 패키지 안에 한개가 있을꺼에요. 그중 프로젝트 root에 있는 build.gradle파일에 아래와 같이 저희 maven repository 경로를 설정해 주세요

subprojects {
    repositories {
        mavenCentral()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
    }
}

그리고 두번째 application 프로젝트 안에 build.gradle파일에는 dependencies라는 부분이 있을텐데 거기에 필요한 모듈을 설정해 주시면 됩니다. 로그인을 사용하기 위해선 usermgmt라는 모듈이 필요하기에 아래와 같이 설정합니다. 최신버전은 1.1.10 입니다.
dependencies {
compile group: ‘com.kakao.sdk’, name: ‘usermgmt’, version: ‘1.1.0’
}

이렇게 설정하시면 원하는 설정은 끝난겁니다.

  1. 샘플에서 나와있는 LoginButtion을 붙이기 위해서는 해당 class resource를 원하시는 activity의 layout.xml에 넣어주셔야 하는데요 저희가 제공하는 LoginButton.java는 'com.kakao.usermgmt.LoginButton’에 있습니다. 따라서 layout.xml 에 절대경로로 넣으시면 ui가 그대로 노출이 될꺼구요. LoginButton은 custon widget으로 이벤트등을 받아서 자동으로 로그인을 시켜주도록 만들어둔 component라고 보시면되요~ https://developers.kakao.com/docs/android#사용자-관리-로그인 여기를 참고하세요~