Closed Kim-SooYoung closed 6 years ago
@Kim-SooYoung
제가 아직 Readme.md 를 업데이트 하지 않아 사용에 불편함이 있는 것 같네요
로그인 성공시 유저의 액세스 토큰과 정보를 가져오려면 다음과 같이 사용할 수 있습니다
this.kakaoTalk.login()
.then(response => {
// 로그인 결과와 엑세스 토큰을 promise 형태로 반환한다
return new Promise(resolve => {
this.kakaoTalk.getAccessToken().then(accessToken => resolve(Object.assign({}, response, { accessToken })))
})
})
.then(({ accessToken, id, nickname, profile_image }) => {
// 유저 정보를 출력
console.log(accessToken, id, nickname, profile_image);
})
.catch(error => console.error(error));
GwonHyeok님, 신속한 답변에 감사드립니다.
kakao에서 사용자의 카카오계정 이메일을 얻어올 수 있는 기능이 있는 것 같습니다. (참고: https://developers.kakao.com/docs/ios/user-management 의 사용자 정보 요청 부분) 이것을 기반으로 제 컴퓨터에 설치한 cordova-plugin-ghyeok-kakaotalk/src/ios/KakaoTalk.m을 아래와 같이 수정하니
if (result) { // success NSLog(@"userId=%@", result.ID); NSLog(@"nickName=%@", [result propertyForKey:@"nickname"]); NSLog(@"profileImage=%@", [result propertyForKey:@"profile_image"]); if (result.email) { NSLog(@"email=%@", result.email); } NSDictionary *userSession = @{ @"id": result.ID, @"nickname": [result propertyForKey:@"nickname"], @"profile_image": [result propertyForKey:@"profile_image"], @"email": result.email}; pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:userSession]; }
Xcode console에서 email부분을 확인 할 수 있었는데, return 값은 undefined로 나타납니다. 저는 ionic 응용 프로그램만 좀 할 줄 알지 다른 것은 잘 모릅니다..... 어떻게 해야 email값을 얻을 수 있을까요?
@Kim-SooYoung
수정은 제대로 하신 것 같은데 email이 undefined 가 나오는건가요 ?
cordova plugin result 로 이메일 정보가 제대로 넘어온다면 아래처럼 사용하면 될 것 같습니다
this.kakaoTalk.login()
.then(response => {
// 로그인 결과와 엑세스 토큰을 promise 형태로 반환한다
return new Promise(resolve => {
this.kakaoTalk.getAccessToken().then(accessToken => resolve(Object.assign({}, response, { accessToken })))
})
})
.then(({ accessToken, id, email, nickname, profile_image }) => {
// 유저 정보를 출력 이메일 항목 추가
console.log(accessToken, id, email , nickname, profile_image);
})
.catch(error => console.error(error));
kakaoTalk.login()의 return 값으로 login 사용자의 email값을 가져올 수 없을까요?