GithubHelp home page GithubHelp logo

crossplatformkorea / react-native-kakao-login Goto Github PK

View Code? Open in Web Editor NEW
357.0 6.0 135.0 6.27 MB

react-native native module for Kakao sign in.

License: MIT License

JavaScript 2.38% Java 16.87% Objective-C 4.21% Ruby 3.18% TypeScript 29.61% Starlark 0.65% Swift 13.17% HTML 0.34% Kotlin 15.89% C++ 7.88% C 0.23% Objective-C++ 5.30% CMake 0.30%

react-native-kakao-login's Introduction

@react-native-seoul/kakao-login

VERSION DOWNLOAD LICENSE CI publish-package

React Native 카카오 로그인 라이브러리 입니다. @react-native-seoul/kakao-login < 3.0 이하 버전을 쓰시는 분들은 DEPRECATED README를 참고해주세요.

세부 예제는 KakaoLoginExample 폴더 안의 예제 프로젝트를 확인해주세요. 해당 라이브러리는 flowtypescript를 지원합니다.

Changelogs

Changelogs 링크

Demo

카카오 로그인 Example Project 데모 화면

example

위 프로젝트는 KakaoLoginExample 폴더에서 확인 가능합니다.

Tutorial

라이브러리를 더욱 편리하게 사용하기 위해서 Youtube 영상을 제작했습니다.

Getting started

해당 라이브러리는 3.0.0 이후 부터는 react-native 0.61이상을 지원합니다. 카카오 라이브러리 지원이 아래 버전부터는 지원이 끊길 예정이므로 참고해주시기 바랍니다. 과거에는 카카오 라이브러리 레거시 iOS카카오 라이브러리 레거시 Android 버전을 쓰고 있었습니다.

Installation

yarn add @react-native-seoul/kakao-login

React Native 0.60.X이상부터는 Auto linking을 지원합니다. 따라서 설치는 매우 간편합니다.

iOS의 경우 yarn add @react-native-seoul/kakao-login 이후 npx pod-install 명령어로 pod 라이브러리만 추가로 설치해주시면 됩니다.

Post Installation

설치가 제대로 되지 않는다면 example project의 설정을 참고하세요 👍

iOS

  1. Pod에서 iOS deployment target이 13.0 이상이어야 합니다.

  2. ios 카카오 sdk 설치 후의 설정과 관련해서는 공식문서 - 카카오 로그인 > 설정하기를 참고해주세요. 해당 가이드를 통해 카카오 개발자 페이지에서 본인의 어플리케이션을 생성해주세요.

  3. 공식문서 - 개발 프로젝트 설정 을 참고하여 info.plist, URL Types 및 커스텀 스킴 추가 등 기타 필요한 세팅들을 프로젝트에 추가해줍니다. 아래카카오 네이티브앱 아이디를 적어주세요 문구를 잘 확인하시여 본인의 Kakao App Key로 변경해주세요.

 <key>CFBundleURLTypes</key>
 <array>
+ <dict>
+   <key>CFBundleTypeRole</key>
+   <string>Editor</string>
+   <key>CFBundleURLSchemes</key>
+   <array>
+     <string>kakao{카카오 네이티브앱 아이디를 적어주세요}</string>
+   </array>
+ </dict>
 </array>
 <key>CFBundleVersion</key>
 <string>1</string>
+ <key>KAKAO_APP_KEY</key>
+ <string>{카카오 네이티브앱 아이디를 적어주세요}</string>
+ <key>KAKAO_APP_SCHEME</key> // 선택 사항 멀티 플랫폼 앱 구현 시에만 추가하면 됩니다
+ <string>{카카오 앱 스킴을 적어주세요}</string> // 선택 사항 
+ <key>LSApplicationQueriesSchemes</key>
+ <array>
+   <string>kakaokompassauth</string>
+   <string>storykompassauth</string>
+   <string>kakaolink</string>
+ </array>
  1. 3.0.0 버전부터는 swift 버전의 kakao sdk를 활용하므로 Swift Bridging Header를 추가해야할 수 있습니다. 1

  2. AppDelegate.m 파일에 해당 부분을 추가해주세요. 이는 카카오톡 앱이 깔려 있을시 올바로 데이터를 받아오기 위함입니다 #193.

  3. Project => Targets 아래 앱 선택 => General 탭으로 이동해서 Bundle Identifier가 본인의 카카오 앱과 동일한지 확인해주세요.

  4. 여러 라이브러리에서 동일한 버전의 SDK를 써야 하는 경우 Podfile에 아래와 같이 추가하여 SDK 버전을 강제로 지정할 수 있습니다.

    # 없는 경우에는 package.json의 sdkVersions.ios.kakao를 따릅니다.
    $KakaoSDKVersion=YOUR_KAKAO_SDK_VERSION

Android

  1. 키 해시 등록을 진행해주세요. 자바 코드로 구하는 방법이 제일 확실합니다.

    AUTHORIZATION_FAILED: invalid android_key_hash or ios_bundle_id or web_site_url
    

    React Native 0.60.x 부터 템플릿에 기본적으로 디버그 키스토어가 포함되어 있습니다. (project/android/app에 디버그 키스토어가 존재합니다.)
    기본 디버그 키스토어의 key hash 는 Xo8WBi6jzSxKDVR4drqm84yr9iU= 를 사용하시면 됩니다.

    템플릿에서 기본 제공되는것 이외의 키스토어에서 key hash 를 추출하기 위해서는 아래의 명령어를 사용하세요

    글로벌 debug keystore 에서 key hash 추출

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

특정 경로의 keystore 에서 key hash 추출

keytool -exportcert -alias {my-app-key-alias} -keystore {your-key-path}/{my-app-key}.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
  1. Redirect URI 설정

    • 카카오 로그인 기능을 구현하기 위해서는 리다이렉션(Redirection)을 통해 Request Code를 받아야 합니다. 그러기 위해서는 아래 코드를 AndroidManifest.xml에 추가해주세요. 그리고 카카오 네이티브 앱 key를 입력해주세요 텍스트를 본인의 카카오 네이티브 키로 변경해주시면 됩니다. (Android 12(API 31) 이상을 타깃으로 하는 앱인 경우, exported 요소를 반드시 "true"로 선언해야 합니다.)

      <activity
         android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
         android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
      
            <!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth“ -->
            <data android:host="oauth"
                android:scheme="kakao{카카오 네이티브 앱 key를 입력해주세요}" />
        </intent-filter>
      </activity>
  2. app/src/main/res/values/strings.xml 을 열어 다음을 추가합니다

    <resources>
        <string name="app_name">KakaoLoginExample</string>
    +   <string name="kakao_app_key">your_app_key</string>
    </resources>
  3. 공식문서-토큰관리 에서 참고할 수 있듯이 Android 카카오 SDK는 액세스 토큰을 자동 갱신해줍니다.

  4. 컴파일 에러가 나면 build.gradle에서 android sdk compile version 등 빌드 sdk 버전을 맞춰주세요.

  5. (Optional) 앱 배포 시, 코드 축소, 난독화, 최적화를 하는 경우, 카카오 SDK를 제외해야 하기 때문에 ProGuard 규칙 파일에 다음 코드를 추가해주세요.

공식 문서

-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter

# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**
  1. Gradle 및 카카오 SDK의 버전을 변경해야 하는 경우, android/gradle.properties 에 있는 항목들을 확인하고, Android gradle의 root project의 ext에 RNKakaoLogins_ 를 제외한 버전을 명시해주세요.

EXPO (Expo Go, Snack 사용 불가, Development Build(EAS, local build)만 가능)

  1. Android의 Kakao SDK Maven Repository를 선언하기 위해 필요한 의존성을 추가합니다.
npx expo install expo-build-properties
  1. app.json 파일을 아래와 같이 수정합니다.
{
  "expo": {
    ...
    "plugins": [
      ...,
      [
        "@react-native-seoul/kakao-login",
        {
          "kakaoAppKey": "{{kakao api key}}",
          "overrideKakaoSDKVersion": "2.11.2", // Optional, 
          "kotlinVersion": "1.9.0" // #392
        }
      ],
      [
        "expo-build-properties",
        {
          "android": {
            "extraMavenRepos": ["https://devrepo.kakao.com/nexus/content/groups/public/"]
          }
        }
      ]
    ],
    ...
  }
} 
  1. (Optional) Android에서 난독화를 사용하실 경우, Expo BuildProperties 를 이용해 Proguard Rule을 공식 문서와 같이 설정해줍니다.

Methods

Func Param Return Description
login Promise{KakaoOAuthToken} 로그인 (카카오톡에 접근할 수 없다면 loginWithKakaoAccount 호출)
loginWithKakaoAccount Promise{KakaoOAuthToken} 카카오계정으로 로그인 (기본 웹 브라우저(CustomTabs)에 있는 카카오계정 cookie 로 사용자를 인증하고 OAuthToken 발급)
getProfile Promise{KakaoProfile} 프로필 불러오기
logout Promise{string} 로그아웃
unlink Promise{string} 연결끊기
getAccessToken Promise{KakaoAccessTokenInfo} 액세스 토큰 조회

프로필 가져오기 - getProfile => KakaoProfile

iOS Android type Description
accessToken string 토큰
refreshToken? string 리프레쉬 토큰
idToken? string OpenID Connect 확장 기능을 통해 발급되는 ID 토큰
accessTokenExpiresAt? Date 토큰 만료 시간
refreshTokenExpiresAt? Date 리프레쉬 토큰 만료 시간, 구버전 SDK로 이미 로그인이 되어있었다면 null이 반환될 수 있습니다.
scopes string[] 사용자로 부터 받은 권한

배송지 가져오기 - shippingAddresses => KakaoShippingAddresses

iOS Android type Description
userId string 사용자 Id
needsAgreement boolean 배송지 제공에 대한 사용자의 동의 필요 여부
shippingAddresses Array 사용자가 소유한 배송지 목록
배송지 정보 (KakaoShippingAddress)
iOS Android type Description
id string 배송지 아이디
name string 배송지명
isDefault boolean 기본 배송지 여부
updatedAt Date 마지막 배송지정보 수정시각
type string 배송지 타입(Old, New)
baseAddress string 주소 검색을 통해 자동으로 입력되는 기본 주소
detailAddress string 기본 주소에 추가하는 상세 주소
receiverName string 수령인 이름
receiverPhoneNumber1 string 수령인 연락처
receiverPhoneNumber2 string 수령인 추가 연락처
zoneNumber string 도로명 주소 우편번호. 배송지 타입이 NEW(도로명 주소)인 경우 반드시 존재함
zipCode string 지번 주소 우편번호. 배송지 타입이 OLD(지번 주소)여도 값이 없을 수 있음

서비스 약관 동의 내역 확인하기 -> serviceTerms => KakaoUserServiceTerms

카카오싱크를 도입한 서비스만 사용할 수 있는 기능입니다.

iOS Android type Description
userId number? 회원 번호
serviceTerms KakaoServiceTerms[]? 조회한 서비스 약관 목록
조회한 서비스 약관 목록 (KakaoServiceTerms)
iOS Android type Description
tag string 3rd에서 동의한 약관의 항목들을 정의한 값
agreed boolean 동의 여부
agreedAt string? 최근 동의 시각
required boolean 필수 동의 여부
revocable boolean 철회 가능 여부

React-native-web

1.RestApiKey랑 redirectUrl을 포함한 아래 링크로 href 링크를 열어서 code를 가져옵니다 const kakaoUrl = https://kauth.kakao.com/oauth/authorize?client_id=${restApiKey}&redirect_uri=${redirectUrl}&response_type=code;

redirectUrl이 http://localhost:3000 일때 아래와같이 redirectUrl에 code파라미터가 붙은 url이 들어와집니다

http://localhost:3000/?code=Ss32OM1_yUybn5dtEQ-XT8EZfV24BKC_GIeIvFPz7_wHorYXtij9JFQcMuGtGdzxQc3Vlwopb1UAAAGCizvuCw code= 뒤쪽부분을 split해서 토큰 발급시 필요한 code를 얻을 수 있습니다 react-native-web에서는 app과 다르게 restApikey, redirecturl을 code와 같이 직접 넣어줘야 합니다

Methods (Web)

Func Param Return Description
login restApiKeyWeb, redirectUrlWeb, codeWeb Promise{KakaoOAuthWebToken} 로그인
loginWithKakaoAccount 웹 지원 x
getProfile tokenWeb Promise{KakaoProfile} 프로필 불러오기
shippingAddresses tokenWeb Promise{KakaoShippingAddresses} 배송지 정보 불러오기
logout tokenWeb Promise{string} 로그아웃
unlink tokenWeb Promise{string} 연결끊기
getAccessToken 웹 지원 x

Usage

Sample Code

const signInWithKakao = async (): Promise<void> => {
  const token: KakaoOAuthToken = await login();

  setResult(JSON.stringify(token));
};

const signOutWithKakao = async (): Promise<void> => {
  const message = await logout();

  setResult(message);
};

const getKakaoProfile = async (): Promise<void> => {
  const profile: KakaoProfile = await getProfile();

  setResult(JSON.stringify(profile));
};

const getKakaoShippingAddresses = async (): Promise<void> => {
  const addresses: KakaoShippingAddresses = await shippingAddresses();

  setResult(JSON.stringify(addresses));
};

const getKakaoServiceTerms = async (): Promise<void> => {
  const serviceTerms: KakaoUserServiceTerms = await serviceTerms();

  setResult(JSON.stringify(serviceTerms))
}

const unlinkKakao = async (): Promise<void> => {
  const message = await unlink();

  setResult(message);
};

How to run example project

  1. clone 받은 레포에서 KakaoLoginExample 폴더로 이동합니다

    cd KakaoLoginExample
  2. 필요한 모듈을 설치 합니다(preinstall이 실행됩니다)

    yarn
  3. 프로젝트 실행

  • KAKAO_APP_KEY등 필요한 SDK 연동 설정은 기본으로 되어 있습니다.
    • 본인 앱의 키로 변경하고 테스트 하셔도 무방합니다. 단 PR을 날리실 때는 삭제하고 날려주세요.
  • yarn start
  • yarn ios or yarn android로 앱 실행
    • iOS 앱이 실행되지 않을 때는 XCode를 열고 테스트 해주세요. 이는 RN 0.64.0에서 발생되고 있는 문제입니다.
  • ios의 경우 ios폴더에서 pod install을 먼저 실행해 주세요. 프로젝트 폴더에서 npx pod-install로 이용하셔도 무방합니다.

react-native-kakao-login's People

Contributors

andrei0807 avatar augini avatar bang9 avatar byunghyunpark avatar coffsun avatar conradmaker avatar danmaas avatar dependabot[bot] avatar floydkim avatar flynnpark avatar heyman333 avatar hyochan avatar jeffgukang avatar jeongjhs avatar koalagon avatar kojongdev avatar kr-yeon avatar kyo504 avatar l2hyunwoo avatar msk-psp avatar mym0404 avatar nain93 avatar rarira avatar seongmo avatar snowsuno avatar sunkibaek avatar wanderlust-sol avatar woonhakim avatar yangjonghun avatar yechukim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

react-native-kakao-login's Issues

iOS에서 'React/RCTBridgeModule.h' file not found

카카오 오그인 라이브러리: 1.20.0, 1.21.1 (둘다 해봤는데 같은 오류..)
리엑트네이티브: sdk-36.0.1
expo 사용: 36.0.0
expo-kit : 36.0.1

문제 platform: iOS
현재 xcode에서 빌드 자체가 안되고 있습니다.

앞서 오류를 찾아보았지만 딱히 답이 없어보이네요.
제가 어디서 잘 못한건지 알기가 어렵네요..
'React/RCTBridgeModule.h' file not found
이 에러가 뜹니다..

iOS install은 pods을 사용했습니다.

또한 RNKakaoLogins.xcodeproj 추가j는 react-native(프로젝트 최상위 루트)에서 node_modules폴더로 이동후 yarn으로 다운 받은 react-native-kakao-login(해당 모듈) =>react-native-seoul/kakao-login => iOS => RNKakaoLogins.xcodeproj 에서 추가 하였습니다.

한가지 더 궁금한 점은 ReadMe.md에 post installation 에서
Project => Targets 아래 앱 선택 => General 탭으로 이동해서 Bundle Identifier가 본인의 카카오 앱과 동일한지 확인해주세요.

여기서 project는 어떤걸 의미 하나요? react-native에서 나온 ios의 project가 맞는지요?

스크린샷 2020-03-15 오전 4 31 37

스크린샷 2020-03-15 오전 4 29 18

조언을 부탁드립니다.

앱 실행 직후 종종 crash 발생 - llegalStateException: Session is not initialized. Call KakaoSDK#init first.

Version of kakao-login libraries

2.1.2 에 Kakao SDK 1.25.0 버전을 사용합니다.

Version of react-native

0.61.4

Platforms you faced the error (IOS or Android or both?)

Android

Expected behavior

앱 실행 후 스플래쉬 화면 진입

Actual behavior

항상 그런 건 아니지만 너무나 자주 앱 실행 시 아래와 같은 예외가 발생합니다.

Fatal Exception: java.lang.RuntimeException: Unable to resume activity {com....MainActivity}: java.lang.IllegalStateException: Session is not initialized. Call KakaoSDK#init first.
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4016)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4048)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

Caused by java.lang.IllegalStateException: Session is not initialized. Call KakaoSDK#init first.
at com.kakao.auth.Session.getCurrentSession(Session.java:111)
at com.kakao.auth.KakaoSDK$1.onActivityResumed(KakaoSDK.java:69)
at android.app.Application.dispatchActivityResumed(Application.java:264)
at android.app.Activity.onResume(Activity.java:1403)
at androidx.fragment.app.FragmentActivity.onResume(FragmentActivity.java:514)
at com.facebook.react.ReactActivity.onResume(ReactActivity.java:55)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1412)

Tested environment (Emulator? Real Device?)

Real device 이며 갤 S8, 갤노트8 등 다양한 기종에서 발생하고 있습니다.

카카오 로그인 및 로그아웃에 관련된 오류를 RN으로 토스하지 않는것 같습니다.

iOS의 경우 NSNull을 그냥 callback에 주고있는것으로 보입니다.

if ([session isOpen]) {
            NSString* token = session.token.accessToken;
            NSString* result = [NSString stringWithFormat:@"{\"token\": \"%@\"}", token];

            callback(@[[NSNull null], result]);
        } else {
            RCTLogInfo(@"Error=%@", error);
            callback(@[@"SignIn failed.\n", [NSNull null]]);
        }

안드로이드는 그나마 ErrorCallback이 있긴하지만.. json에 대한 exception으로만 되어있네요..

 if (loginCallback != null) {
        JSONObject response = new JSONObject();
        String token = Session.getCurrentSession().getAccessToken();
        try {
          response.put("token",token);
          loginCallback.invoke(null,response.toString());
          loginCallback = null;
        } catch (JSONException e) {
          loginCallback.invoke(e.toString(), null);
        }
      }
    }

    @Override
    public void onSessionOpenFailed(KakaoException exception) {
      if(exception != null) {
        if (loginCallback != null) {
          loginCallback.invoke(null, exception.toString());
          loginCallback = null;
        }
        Log.e(TAG, "Logged in!\nSessionOpenFailed");
        Logger.e(exception);
      }
    }

해당 라이브러리를 사용해서 kakao login cancel이나 error들에 대한 처리는 할 수 없나요?

BUILD Failed on Android

I keep getting this error, seems like there's a problem with the support library used in this library

ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:font
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontStyle
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontWeight

[IOS] Error: invalid android_key_hash or ios_bundle_id or web_site_url

Version of kakao-login libraries

@2.3.0

Version of react-native

@0.61.5

Platforms you faced the error (IOS or Android or both?)

IOS...

Expected behavior

react-native run-ios로 simulator를 돌리고 카카오톡 로그인을 했을 때 정상 로그인이 되어야 합니다.

Actual behavior

react-native run-ios 시 카카오 로그인을 했을 때, 안드로이드에서 키 해쉬를 등록하지 않았을 때에 대한 에러인
Error: invalid android_key_hash or ios_bundle_id or web_site_url
가 발생합니다.

안드로이드일 때와 ios일의 key-hash는
터미널에서 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
를 통해서 둘 다 등록해 두었습니다.

Tested environment (Emulator? Real Device?)

Simulator에서 에러가 발생합니다.

카카오 간편로그인

예시대로 카카오 로그인을 하는데

카카오톡이 깔려있는데도 간편로그인은 안되고

다른계정으로 로그인만 뜨는데 원래 이런건가요

아래에 있는 이슈보면 간편로그인창이 뜨는거 같긴한데 혹시 저만이런건가요

ios입니다

Read me에 있는 manual installation이 무슨 말인지 모르겠습니다.

1.In XCode, in the project navigator, right click Libraries ➜ Add Files to [your project's name]
=> Xcode를 열고 project navigator에서 오른쪽 클릭하여 Add Files to project name해서 여기서 다운 받은 파일 추가
2.Go to node_modules ➜ react-native-kakao-logins and add RNKakaoLogins.xcodeproj
=>react-native 내의 node_modules에 react-native-kakao-logins와 RNKakaoLogins.xcodeproj 복사 붙여넣기

3.In XCode, in the project navigator, select your project. Add libRNKakaoLogins.a to your project's
=>add libRNKakaoLogins.a라는게, libRNKaKaoLogins.a 파일을 새로 만들어서 넣어라는건가요? 올려주신 파일중에는 다음과 같은 명의 파일이 없어서요

4.Build Phases ➜ Link Binary With Libraries
5.Run your project (Cmd+R)<

[android] Value for message cannot be cast from ReadableNativeMap to string 에러

좋은 라이브러리 감사합니다.
질문이 하나 있어 남겨드립니다.
RNKakaoLogins.login() 호출 시 해당 기능은 잘 작동하지만 (기존 카카오 로그인, 다른 계정으로 로그인 등 modal 표시)

로그인 성공 시 이후 코드가 실행되지 않고 위 제목의 에러가 발생합니다.
Value for message cannot be cast from ReadableNativeMap to string

감사합니다.

[Android, iOS] 카카오 네이티브 로그인 시 RNKakaoLogins.login 콜백 함수가 동작 안함

kakaotalk_photo_2018-07-12-13-24-53

카카오 네이티브 로그인 시,
카톡 어플로 전환되고 다시 제 어플로 돌아와서 토큰을 리턴할 줄 알았는데
iOS 는 RNKakaoLogins.login 콜백 함수가 동작하지 않는 것 같습니다.
아래처럼 알람을 찍어도 동작하지 않습니다.

// 카카오 로그인
    kakaoLogin() {
        console.log('   kakaoLogin   ');
        RNKakaoLogins.login((err, result) => {
            if (err) {
                Alert.alert('kakao Login err', err)
                console.log(err);
                return;
            }
            // var access_token = result.slice(8, -1)
            Alert.alert('kakao Login run')
            Alert.alert('kakao Login result', result)
            // console.log('get access_token: ', access_token);
            // this.kakaoLoginService(access_token)
            // this.getProfile()
        });
    }

카카오 간편로그인 ios 질문드립니다.

좋은 라이브러리를 만들어 주셔서 감사합니다.

리액트 네이티브로 해당 라이브러리를 사용해 카카오 로그인을 제공하고 있는데,

appdelegate 의 메소드가 충돌하여 카카오 간편 로그인이 지원이 되지 않는 것 같습니다.(웹뷰 로그인만 가능)

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
 options:(NSDictionary<NSString *,id> *)options {
 if ([KOSession isKakaoAccountLoginCallback:url]) {
 return [KOSession handleOpenURL:url] && [[RNFirebaseLinks instance] application:application openURL:url options:options];
 }
 return false;
 }
 */
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    return [RCTLinkingManager application:application openURL:url options:options];
}

현재 앱링크를 받는 구문, rn파이어베이스, 카카오 로그인이 같은 구문을 사용하고 있어
사용을 중지한 상태입니다.

ios개발이 처음인터라 질문을 드립니다. 어떻게 이 구문들을 합쳐서 리턴할 수 있을까요?

감사합니다.

KakaoWebViewActivity 보안 관련 구글 플레이스토어 문제 해결

문제를 아래와 같이 해결했습니다.
SDK version은 1.15.1입니다.

   <activity
        android:name="com.kakao.auth.authorization.authcode.KakaoWebViewActivity"
        android:launchMode="singleTop"
+      android:exported="false"
        android:windowSoftInputMode="adjustResize">

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
교차 앱 스크립팅에 취약한 WebView가 앱에 포함되어 있습니다. 자세한 내용은 Google 고객센터 도움말을 확인하세요.
취약한 클래스:
com.kakao.auth.authorization.authcode.KakaoWebViewActivity->initUi

Undefined symbols for architecture arm64

Version of kakao-login libraries

2.4.1

Version of react-native

0.61.1

Platforms you faced the error (IOS or Android or both?)

iOS

Expected behavior

Xocde에서 빌드 시 에러가 나지 않아야 함.

Actual behavior

오토 링크 사용 중에 있으며,
Xcode에서 빌드 시 에러가 납니다.

가이드의 npm 설치, pod install 까지 한 뒤 Xcode에서 빌드했습니다.

기존에 설치하다 좀 헤매서, Post installation 부분은 따라한 상태입니다.

Undefined symbols for architecture arm64:
"___isPlatformVersionAtLeast", referenced from:
___33-[KLKTalkLinkCenter _callLinkAPI]_block_invoke_2 in KakaoLink(KLKTalkLinkCenter.o)
-[KNVNaviLauncher initWithConfiguration:] in KakaoNavi(KNVNaviLauncher.o)
-[KOTalkAuthorizeTask startWithCompletion:] in KakaoOpenSDK(KOAuthorizeTask.o)
-[KOStoryAuthorizeTask startWithCompletion:] in KakaoOpenSDK(KOAuthorizeTask.o)
-[KOSession initWithAppKey:redirectUri:] in KakaoOpenSDK(KOSession.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Tested environment (Emulator? Real Device?)

iPhone XR, Generic iOS Device 둘 다 동일하게 발생합니다.

네이티브 로그인시 동작하지 않는 현상

같은 문제가 발생하는데, 다른 분들 괜찮으신가요?

CANCELED_OPERATION: App restarted during Kakao login procedure. Restarting from the start.

첫 시도시, 화면 순간 깜빡거리고 위에러 이후에는 반응이 없습니다. 웹으로 로그인을 시도하여 성공하면, 이후 네이티브에서는 성공합니다.

Originally posted by @tedkimzikto in #9 (comment)

README에 적힌대로 1.3.8 버전을 설치할 수 없습니다.

Version of kakao-login libraries

1.3.8

Version of react-native

59.9

Platforms you faced the error (IOS or Android or both?)

both

Expected behavior

설치되어야 함

Actual behavior

package.json

{
...
"react-native-kakao-logins": "^1.3.8
...
}
$ npm install

npm ERR! code EISGIT
npm ERR! path /Users/choong/dev/cojam-rn/node_modules/react-native-kakao-logins
npm ERR! git /Users/choong/dev/cojam-rn/node_modules/react-native-kakao-logins: Appears to be a git repo or submodule.
npm ERR! git     /Users/choong/dev/cojam-rn/node_modules/react-native-kakao-logins
npm ERR! git Refusing to remove it. Update manually,
npm ERR! git or move it out of the way first.

60버전으로 올릴 수 없습니다. 1.3.8 버전을 사용해야 합니다.
git repository 자체가 없어졌습니까?
아니면 1.3.8 버전을 어디서 다운받을 수 있습니까?

Tested environment (Emulator? Real Device?)

OSX both

Access Token 만료 여부는 어떻게 확인 할 수 있나요?

Version of kakao-login libraries

  • react-native-seoul/kakao-login: ^1.0.1-rc2

Version of react-native

  • react-native": 0.60.5

Platforms you faced the error (IOS or Android or both?)

  • Both

Expected behavior

  • 1회 로그인으로 사용자 로그인 세션을 유지하고자 합니다.
  • 최초 로그인 시 토큰을 앱 내에 저장하고, 앱을 실행할 때 AccessToken의 만료 여부를 확인하고, 이를 갱신하기 위해 RefreshToken을 이용하고자 합니다.
  • 지금까지 확인한 바로는 Kakao REST API에서는 AccessToken 만으로 Refresh Token을 얻을 수 없었습니다.

Actual behavior

  • Back-end 서비스에서 Kakao REST-API 를 이용하여 이 기능을 구현하고자 합니다.
  • SDK에서 제공하는 AccessToken 만료에 대한 고민을 하지 않아도 되나요?
  • 만약 그렇지 않다면, 로그인 상태를 유지하기 위해서 어떻게 처리해야 하는지 조언을 부탁 드리고자 합니다.

Tested environment (Emulator? Real Device?)

  • 해당사항 없습니다.
  • 감사합니다. :D

kakaoLogin() 이 실행되고 로그인이 완전히 실행 된후 getProfile() 함수를 부르는 방법에 관해 질문 드립니다.

getProfile 함수를 아래와 같이 하여 state에 프로필사진의 경로를 저장하는 방식 등으로 라이브러리를 사용하고자 합니다. async/await 등의 방법으로 시도를 하였지만 로그인을 실행하는 이벤트와 getProfile을 실행하는 이벤트를 따로 onPress 등에 넣지 않고 한번의 이벤트로 비동기방식으로 두가지를 실행 시키는 방법을 찾지 못하고 있습니다. 혹시 이에 관해 답해주시면 감사하겠습니다. (kakaoLogin()으로 로그인 이후에 getProfile()로 state에 getProfile의 result의 json 값들을 저장시키는 방법을 묻습니다ㅠ)

getProfile() {
   RNKakaoLogins.getProfile((err, result) => {
      if (err) {
        Alert.alert("error profile", JSON.stringify(err));
        return;
      }
    this.setState({ isLoggedIn: true, image: result.profile_image_path });
    });
  }

npm install 시 뜨는 에러

RN version: 0.60.5
Xcode version : 11(latest)
OS: IOS
Simulator: Iphone X

react-native-kakao-logins 모듈 자체에 문제는 없습니다!
다만 작업 중 새로운 패키지 npm install 시 다음과 같은 에러가 계속 생겨서 메뉴얼로 rm -rf node-modules/react-native-kakao-logins 이후 다시 npm install 를 하고 있는데,
이를 없앨 수 있는 원인을 알고 싶네요..

에러는 다음과 같습니다.
Markui-MacBookPro:drsalary_app mj$ npm install react-native-calendars
npm ERR! path /Users/mj/Desktop/projects/drsalary_app/node_modules/react-native-kakao-logins
npm ERR! code EISGIT
npm ERR! git /Users/mj/Desktop/projects/drsalary_app/node_modules/react-native-kakao-logins: Appears to be a git repo or submodule.
npm ERR! git /Users/mj/Desktop/projects/drsalary_app/node_modules/react-native-kakao-logins
npm ERR! git Refusing to remove it. Update manually,
npm ERR! git or move it out of the way first.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/mj/.npm/_logs/2019-09-25T03_13_18_643Z-debug.log

Could not find com.kakao.sdk:usermgmt:1.7.0.

패키지 설치 후 링크만 한 상태에서
react-native run-android 구동시 아래와 같은 에러가 발생합니다
매뉴얼로 링크 시켜도 동일한 에러가 발생합니다.

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not find com.kakao.sdk:usermgmt:1.7.0.
  Searched in the following locations:
      file:/Users/pbh/Library/Android/sdk/extras/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      file:/Users/pbh/Library/Android/sdk/extras/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      file:/Users/pbh/Library/Android/sdk/extras/google/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      file:/Users/pbh/Library/Android/sdk/extras/google/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      file:/Users/pbh/Library/Android/sdk/extras/android/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      file:/Users/pbh/Library/Android/sdk/extras/android/m2repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      file:/Users/pbh/.m2/repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      file:/Users/pbh/.m2/repository/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      https://jcenter.bintray.com/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      https://jcenter.bintray.com/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      https://dl.google.com/dl/android/maven2/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      https://dl.google.com/dl/android/maven2/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
      file:/Users/pbh/project/react/luxlabUser_20180703/luxlabUser/node_modules/react-native/android/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.pom
      file:/Users/pbh/project/react/luxlabUser_20180703/luxlabUser/node_modules/react-native/android/com/kakao/sdk/usermgmt/1.7.0/usermgmt-1.7.0.jar
  Required by:
      project :app > project :react-native-kakao-logins

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s
19 actionable tasks: 1 executed, 18 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

reactNativeKakaoLogins2.default.login

안녕하세요~
카카오 로그인 모듈 샘플 예제 실행시 ios 와 안드로이드 동일하게
undefined is not an object (evaluating '_reactNativeKakaoLogins2.default.login.default.login')
에러가 나는데요
올려주신 샘플소스 확인 가능하실지 문의드립니다.

RN 0.60 미만도 최신버전의 모듈을 사용할 수 있도록 수정

Version of kakao-login libraries

n/a

Version of react-native

n/a

Platforms you faced the error (IOS or Android or both?)

n/a

Expected behavior

RN 모든 버전에서 최신 버전의 모듈을 사용 할 수 있도록 지원

Actual behavior

RN 0.60 미만 사용자를 위한 버전이 따로 분리 되어 있어 설치 방법이 번잡스럽고,
불필요하게 deprecated된 패키지를 다운 받아야 하는 문제가 있음

Tested environment (Emulator? Real Device?)

n/a

Android에서 Expokit을 사용 중일때 적용 문제

Expokit을 사용하면 MainApplication.java에서는

public class MainApplication extends ExpoApplication

와 같이 ExpoApplication를 이미 상속 받아서 사용합니다.

안드로이드에서 com.dooboolab.kakaologins.GlobalApplication를 MainApplication이 상속받을 수가 없는데 어떻게 해야할까요?

에뮬레이터에서 배포용 apk로 카카오톡 로그인이 안됩니다.

Version of kakao-login libraries

1.3.0

Version of react-native

0.60.4

Platforms you faced the error (IOS or Android or both?)

android

Expected behavior

Emulator에 실배포용 apk를 설치 후 카카오톡 로그인후 callback 와서 로그인이 되야 합니다,

Actual behavior

Emulator에 실배포용 apk를 설치 후 카카오톡 로그인인 안됩니다.

Tested environment (Emulator? Real Device?)

Emulator

로그인 페이지가 뜨지 않습니다. `null is not an object`

카카오 오그인 라이브러리: 1.21.1 (이 번에는, 수동으로 framework에 넣었습니다. 그러나 pods를 사용하여 설치해도 마찬가지의 오류가 나타납니다.)
리엑트네이티브: sdk-36.0.1
expo 사용: 36.0.0
expo-kit : 36.0.1
platform: iOS, android

TypeError: null is not an object (evaluating 'RNKakaoLogins.login')

이라는 에러가 발생합니다. 안드로이드에서도 문제인데요.
sample code로 작성하였습니다.
plist.info, url types도 설정해 주었습니다.

IMG_3874
IMG_3875

스크린샷 2020-03-15 오후 3 50 10
스크린샷 2020-03-15 오후 3 49 34

Readme.md 수정 필요 (안드로이드 설치방법)

Version of kakao-login libraries

2.2.0

Version of react-native

0.61.5

Platforms you faced the error (IOS or Android or both?)

Android

Expected behavior

컴파일 됨

Actual behavior

스크린샷 2020-02-05 오후 10 59 38

Tested environment (Emulator? Real Device?)

Android Q Pixel 3 API 29 에서 발생합니다. ReadMe의 Android 인스톨 설명 부분에서 MainApplication.java 부분의 packages.add(new RNKakaoLoginsPackage()); 를 지우니까 해결 되었습니다. import com.dooboolab.kakaologins.RNKakaoLoginsPackage; 와 중복처리나는것 같습니다.

최신 버전 릴리즈

master 브랜치의 내용이 아직 npm 으로 publishing되지는 않은 것 같은데요 publishing부탁 드립니다~ 🙏 ㅎㅎ

@hyochan

Gender와 Birthday를 얻어와야 합니다.

Version of kakao-login libraries

2.0.6

Version of react-native

0.61.4

Platforms you faced the error (IOS or Android or both?)

Expected behavior

Actual behavior

Tested environment (Emulator? Real Device?)

Undefined symbols for architecture x86_64: 문제

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_KOSession", referenced from:
      objc-class-ref in libRNKakaoLogins.a(RNKakaoLogins.o)
  "_OBJC_CLASS_$_KOSessionTask", referenced from:
      objc-class-ref in libRNKakaoLogins.a(RNKakaoLogins.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

해당 이슈가 발생합니다.

android native 로그인 시 Unable to add window -- token null is not valid; is your activity running? 에러 발생

android 디바이스에 카카오톡이 설치되어 있지 않은 웹뷰 로그인 시에는 정상 작동합니다.

하지만 디바이스에 카카오톡이 설치 되어있는 네이티브 로그인시에는 아래와 같은 에러를 발생합니다.

kakaotalk_photo_2018-07-10-15-08-33

(참고로 ios도 네이티브 로그인이 정상 작동하지 않아 강제 웹뷰 동작으로 쓰고 있습니다)

호출한 함수는 아래 로그인 함수입니다.

// 카카오 로그인
    kakaoLogin() {
        console.log('   kakaoLogin   ');
        RNKakaoLogins.login((err, result) => {
            if (err) {
                console.log(err);
                return;
            }
            var access_token = result.slice(8, -1)
            console.log('get access_token: ', access_token);
            this.kakaoLoginService(access_token)
        });
    }

안드로이드에서 file path error

ios에서는 잘되는데 안드로이드에 설치시

ERROR: The modules ['@react-native-seoul_kakao-login', 'react-native-seoul-kakao-login'] point to the same directory in the file system.

이렇게 나옵니다. .iml 파일 지우고 다시 import 했는데도 계속이러네요.

android 빌드 시 두 가지 에러 발생 error: incompatible types, error: cannot find symbol

readme 파일과 KakaoLoginExample 폴더를 참고해서 설치를 진행했습니다.

  1. 안드로이드 카카오 SDK 설치 후의 설정과 관련해서는 여기를 참고해주세요. 성공적으로 build가 되는 것을 확인하시면 아래를 진행하시면 됩니다.

그런데 위 단계까지 진행하면, 빌드 중 아래와 같은 에러가 발생합니다.

> Task :react-native-kakao-logins:compileDebugJavaWithJavac
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:37: error: cannot find symbol
import com.kakao.usermgmt.callback.MeV2ResponseCallback;
                                  ^
  symbol:   class MeV2ResponseCallback
  location: package com.kakao.usermgmt.callback
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:38: error: cannot find symbol
import com.kakao.usermgmt.response.MeV2Response;
                                  ^
  symbol:   class MeV2Response
  location: package com.kakao.usermgmt.response
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:125: error: incompatible types: View cannot be converted to ImageView
        ImageView imageView = convertView.findViewById(com.kakao.usermgmt.R.id.login_method_icon);
                                                      ^
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:131: error: incompatible types: View cannot be converted to TextView
        TextView textView = convertView.findViewById(com.kakao.usermgmt.R.id.login_method_text);
                                                    ^
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:158: error: incompatible types: View cannot be converted to ListView
    ListView listView = dialog.findViewById(com.kakao.usermgmt.R.id.login_list_view);
                                           ^
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:171: error: incompatible types: View cannot be converted to Button
    Button closeButton = dialog.findViewById(com.kakao.usermgmt.R.id.login_close_button);
                                            ^
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:216: error: cannot find symbol
    UserManagement.getInstance().requestLogout(new LogoutResponseCallback() {
                  ^
  symbol:   method getInstance()
  location: class UserManagement
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:242: error: cannot find symbol
    UserManagement.getInstance().me(new MeV2ResponseCallback() {
                                        ^
  symbol:   class MeV2ResponseCallback
  location: class RNKakaoLoginsModule
/Users/pbh/project/react/luxlabUser/node_modules/react-native-kakao-logins/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.java:242: error: cannot find symbol
    UserManagement.getInstance().me(new MeV2ResponseCallback() {
                  ^
  symbol:   method getInstance()
  location: class UserManagement
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
9 errors


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-kakao-logins:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

android release 버전으로 실행할 때 로그인이 실패합니다.

callback 으로 리턴된 에러는 다음과 같습니다.
{"line":815, "column": 271, "sourceURL": "index.android.bundle"}

RN version : 0.59.10
react-native-kakao-logins version : 1.3.7

debug 모드에서는 잘 동작하며, key 해시는 debug, release 둘 다 잘 등록하였습니다

accessToken response is non Json

ios로 연결중인데, login이후 들어오는 액세스토큰의 값이 Json타입이 아닌 String객체로 들어옵니다.
"{"token":"abcdefg"}" 형태가 아니라 "{token :abcdefg}" 다음과 같이 들어와서 parse해서 바로 쓰지 못합니다.

The example code doesn't work for me

error case 1

When I open the project on AndroidStudio. Gradle has occurred a problem. like this below the image.

corymsmith/react-native-fabric#200

Suggestion

  • before
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

(...)
  • after
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

(...)

error case 2

I read the README.md about this project, but this example code follows a legacy version.
So, This example can't resolve the class that name 'GlobalApplication' at android.
I think you'd better maintain this example. kind regards.

README에 카카오 maven 주소가 잘못되어 있습니다.

Version of kakao-login libraries

Version of react-native

^2.1.0

Platforms you faced the error (IOS or Android or both?)

android

Expected behavior

안드로이드 빌드가 정상적으로 되어야함

Actual behavior

gradle 빌드시 illegar character... 오류가 발생

Tested environment (Emulator? Real Device?)

실제기기: galaxy s7

조치:

as-is:

maven { url 'http://devrepo.kakao.com:8088/ +nexus/content/groups/public/' }

to-be:

maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }

카카오 로그인 선택 팝업에서 배경 혹은 닫기 버튼을 누를 때 콜백 함수 호출이 안되는 증상

안드로이드에서 확인한 것 인데요. (iOS는 기기가 없어서 정확한 동작은 모르겠네요.)
복수 타입 선택이 가능한 경우 팝업을 띄워주고 있는데요. 이 때 나가기 버튼을 누르거나 배경을 눌러서 팝업을 닫으면 콜백 함수 호출 없이 팝업만 닫히고 있습니다.
로그인 요청을 하고 콜백을 받아서 처리를 하는데 콜백 전달이 되지 않아 처리를 못하고 있는데요.
사용자가 팝업을 닫는 경우에는 에러 콜백 전달이 가능할까요?

사용자 정보 요청시 phone number 획득 가능 여부

Version of kakao-login libraries

2.2.0

Version of react-native

0.60.5

Platforms you faced the error (IOS or Android or both?)

both

Expected behavior

유저 핸드폰번호를 획득합니다.

Actual behavior

유저 핸드폰 번호가 넘어올 수 있는지 궁금합니다.

Tested environment (Emulator? Real Device?)

n / a

안녕하세요 @bang9 님 전에 PR을 주실때(https://github.com/react-native-seoul/react-native-kakao-login#params-in-result-when-getprofile), 유저 동의하에 phone_number를 가져올 수 있도록 수정 해주신거같은데, 제가 카카오 문서를 찾아보니 유저의 핸드폰 번호를 얻을 수 있는 방법은 딱히 없어보이네요...

혹시 실제로 유저 핸드폰 번호를 받아서 사용중이신가요?

안드로이드 빌드시 오류

Version of kakao-login libraries

"@react-native-seoul/kakao-login": "^2.1.0",

Version of react-native

"react-native": "0.61.2",

Platforms you faced the error (IOS or Android or both?)

Android

Expected behavior

정상 빌드

Actual behavior

react-native run-android시 아래와 같은 에러가 발생합니다.

ERROR: The project name '@react-native-seoul/kakao-login' must not contain any of the following characters: [/, , :, <, >, ", ?, *, |]. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/5.5/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).

Tested environment (Emulator? Real Device?)

에뮬레이터

fatal error: 'KakaoOpenSDK/KakaoOpenSDK.h' file not found

react-native link react-native-kakao-logins 명령으로 링크를 하면
react-native run-ios 명령으로 시뮬레이터 구동 시, 아래와 같은 에러가 발생합니다.

/Users/pbh/project/react/KakaoLoginTest2/node_modules/react-native-kakao-logins/ios/RNKakaoLogins.m:4:9: fatal error: 'KakaoOpenSDK/KakaoOpenSDK.h' file not found
#import <KakaoOpenSDK/KakaoOpenSDK.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

제 프로젝트에 적용하다가 해결이 안되서
기본 프로젝트로 본 패키지만 설치해봤는데
링크 후 동일한 에러가 발생합니다.

어떤게 문제일까요?

다른 카카오계정으로 로그인 오류??

한번 카카오 로그인 후
다른 카카오계정 로그인 호출 시 계정입력 하는 창이 나오지 않고
토큰값을 바로 리턴해버리네요..
뭐가 문제인가요?

[ios]카카오톡으로 간편 로그인

안녕하세요. 정말 좋은 api를 만들어주셔서 감사합니다.
그런데 동작중에 문제가 있는거 같아서 질문드립니다.
kakaotalk_photo_2018-08-01-22-36-08

사진에서 다른 카카오톡계정으로 로그인 버튼을 통해서 계정과 비밀번호를 입력하면 token을 받아오는데,
카카오톡으로 간편로그인을 클릭하면 카카오톡으로 넘어갓다가 다시 앱으로 왔지만 token을 받아오지 않는거같습니다.
getprofile을 클릭하면 error로 뜨고 카카오톡으로 간편로그인 클릭하면 다시 카톡으로 넘어갓다가 앱으로 오기를 반복합니다. 시간 나실때 확인 부탁드립니다.

더위 조심 하세요! 감사합니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.