flutter_kakao_login 3.4.1 copy "flutter_kakao_login: ^3.4.1" to clipboard
flutter_kakao_login: ^3.4.1 copied to clipboard

discontinued
PlatformAndroidiOS

A Flutter plugin for using the native Kakao Login SDKs on Android and iOS

Flutter Kakao Login PlugIn #

pub

Deprecation Notice #

This plugin will no longer be updated as the full version of the Kakao SDK for Flutter is released. No further updates to this plugin are planned and we recommend that all users migrate to the https://pub.dev/packages/kakao_flutter_sdk version.


A Flutter plugin for using the native Kakao Login SDKs on Android and iOS.

The source is designed in the Kakao API V2 version. (start updated 2021.02.20)

KakaoSDK Version using in plugin #

  • iOS SDK Version 2.7.0
  • Android SDK Version 2.7.0

Required #

  • iOS Required
    • Deployment Target 11.0 Higher.
  • Android Required
    • Compile SDK 28 Higher.
    • Min SDK 21 Higher.

Installation #

See the installation by pub.

Android #

See the setup instructions detail.

Setup :: tools version

Set to tools 3.6.1 or higher

  • File Location: android/build.gradle
dependencies {
    ...
    classpath 'com.android.tools.build:gradle:3.6.1'
}
copied to clipboard

Setup :: gradle version

Set to gradle 5.6.4 or higher

  • File Location: android/gradle.wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
copied to clipboard

Setup :: proguard-kakao.pro

First, create proguard-kakao.pro file.

  • File Location: android/app/proguard-kakao.pro
# kakao login
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
copied to clipboard

Second, You need to apply ProGuard to your project.

  • File Location: android/app/build.gradle
buildTypes {
    release {
        ...
        proguardFiles 'proguard-kakao.pro'
    }
}
copied to clipboard

Setup :: AndroidManifest.xml

<!-- 1. Setup Require -->
<uses-permission android:name="android.permission.INTERNET" />

<application>
    <activity
        ...
        android:name=".SampleLoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!-- 2. Setup Kakao -->
    <activity android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity">
        <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="kakao0123456789abcdefghijklmn" />
        </intent-filter>
    </activity>
    ...
</application>
copied to clipboard

iOS #

See the setup instructions detail.

Setup :: AppDelegate.swift

See the example/ios/Runner/AppDelegate.swift

Setup :: Info.plist

<key>KAKAO_APP_KEY</key>
<string>0123456789abcdefghijklmn</string>
copied to clipboard
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>kakao0123456789abcdefghijklmn</string>
    <string>kakaokompassauth</string>
    <string>storykompassauth</string>
    <string>kakaolink</string>
    <string>storylink</string>
</array>
copied to clipboard
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string></string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>kakao0123456789abcdefghijklmn</string>
        </array>
    </dict>
</array>
copied to clipboard

Example #

See example/lib/main.dart for details.

  • Kakao SDK Init (Set NATIVE_APP_KEY)
await kakaoSignIn.init("0123456789abcdefghijklmn");
copied to clipboard
  • Login Example
try {
    final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
    final result = await kakaoSignIn.logIn();
    // To-do Someting ...
} on PlatformException catch (e) {
    print("${e.code} ${e.message}");
}
copied to clipboard
  • Logout Example
try {
    final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
    final result = await kakaoSignIn.logOut();
    // To-do Someting ...
} on PlatformException catch (e) {
    print("${e.code} ${e.message}");
}
copied to clipboard
  • Unlink Example
try {
    final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
    final result = await kakaoSignIn.unlink();
    // To-do Someting ..
} on PlatformException catch (e) {
    print("${e.code} ${e.message}");
}
copied to clipboard
  • Get AccessToken Example
final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
final KakaoToken token = await (kakaoSignIn.currentToken);
final accessToken = token.accessToken;
if (accessToken != null) {
    // To-do Someting ...
}
copied to clipboard
  • Get RefreshToken Example
final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
final KakaoToken token = await (kakaoSignIn.currentToken);
final refreshToken = token.refreshToken;
if (refreshToken != null) {
    // To-do Someting ...
}
copied to clipboard
  • Get UserMe Example
try {
    final FlutterKakaoLogin kakaoSignIn = new FlutterKakaoLogin();
    final result = await kakaoSignIn.getUserMe();
    final KakaoAccountResult account = result.account;
    if (account != null) {
        final KakaoAccountResult account = result.account;
        final userID = account.userID;
        final userEmail = account.userEmail;
        final userPhoneNumber = account.userPhoneNumber;
        final userDisplayID = account.userDisplayID;
        final userNickname = account.userNickname;
        final userGender = account.userGender;
        final userAgeRange = account.userAgeRange;
        final userBirthday = account.userBirthday;
        final userProfileImagePath = account.userProfileImagePath;
        final userThumbnailImagePath = account.userThumbnailImagePath;
        // To-do Someting ...
    }
} on PlatformException catch (e) {
    print("${e.code} ${e.message}");
}
copied to clipboard

Contributors #

Thank you for your interest in the source and for your help :)

github email
@amond amond@amond.net
@myriky riky@myriky.net
@kunkaamd
25
likes
150
points
159
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.19 - 2025.04.03

A Flutter plugin for using the native Kakao Login SDKs on Android and iOS

Repository (GitHub)

Documentation

API reference

License

BSD-2-Clause (license)

Dependencies

flutter

More

Packages that depend on flutter_kakao_login