패키지, 저장소 및 앱 카테고리 검색

GitHub 저장소duythien0912/flutter_zalo_login

flutter_zalo_login

사용자가 네이티브 안드로이드 및 iOS Zalo 로그인 SDK를 사용하여 인증할 수 있도록 해주는 플러터 플러그인입니다.

flutter_zalo_login 프로젝트 이미지
스타
21
포크
20
최근 푸시(UTC)
2026. 7. 24.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

Flutter Zalo Login

1. Installation

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_zalo_login:

2. Usage

Call init function on initState

ZaloLogin().init();

Login function return type https://pub.dev/documentation/flutter_zalo_login/latest/flutter_zalo_login/ZaloLoginResult-class.html

Properties Type
userId String
errorCode int
errorMessage String
oauthCode String
ZaloLoginResult res = await ZaloLogin().logIn();

Check is authenticated

bool isAuthenticated = await ZaloLogin().isAuthenticated();

Logout

await ZaloLogin().logOut();

Get info from user return type https://pub.dev/documentation/flutter_zalo_login/latest/flutter_zalo_login/ZaloProfileModel-class.html

Properties Type
id String
name String
birthday String
gender String
picture.data.url String
ZaloProfileModel info = await ZaloLogin().getInfo();

3. Setup Zalo developers

To make this plugin working we need to have there key:

  • YOUR_ZALO_APP_ID
  • Android Hash Key ( only Android )
  • YOUR_ZALO_APP_SECRET_KEY ( only IOS )

First go to this page: https://developers.zalo.me and create account/new app

It will have 2 value

ID: YOUR_ZALO_APP_ID

Secret Key: YOUR_ZALO_APP_SECRET_KEY

3.1 :warning: Note

IOS will need YOUR_ZALO_APP_ID and YOUR_ZALO_APP_SECRET_KEY

Android will need YOUR_ZALO_APP_ID and Hash Key

Android Hash Key will be show on console log when you run ZaloLogin().init(); like below

V/ZaloLogin(28932): ---------------------------------------------------------------------------
V/ZaloLogin(28932): |     Please add this Hash Key to Zalo developers dashboard for Login     |
V/ZaloLogin(28932): tUDfvw+YYoyciFpRM4WIRYeqtRI= <-- YOUR ANDROID HASH CODE
V/ZaloLogin(28932): ---------------------------------------------------------------------------

Config your BundleID, Package name, Hash key on zalo develop

4. Setup for Android Kotlin

4.1 This plugin needs minSdkVersion >= 21 for working

As of 0.2.0 the Android side uses Zalo SDK v4 (me.zalo:sdk-* on Maven Central) with the OAuth PKCE flow, AGP 8, Gradle 8.9 and compileSdk 35. iOS uses ZaloSDK ~> 4.1 with deployment target 12.0.

Open android/app/build.gradle and edit


minSdkVersion 21 // or bigger

4.2 Open to /android/app/src/main/AndroidManifest.xml and add config on bottom under flutterEmbedding block
    <application
        android:name=".FlutterApplication"
        android:label="zaa_example"
        android:icon="@mipmap/ic_launcher">

        <!-- ... -->
        <!-- ... -->

        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />

        <!-- ADD HERE -->
        <meta-data
            android:name="com.zing.zalo.zalosdk.appID"
            android:value="@string/appID" />
        <activity
                android:name="com.zing.zalo.zalosdk.oauth.BrowserLoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="@string/zalosdk_login_protocol_schema"/>
            </intent-filter>
        </activity>
        <!-- ADD HERE -->

        <!-- ... -->

    </application>
4.3 After that create new string.xml file on folder /android/app/src/main/res/values/string.xml

and change YOUR_ZALO_APP_ID to your app_id

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">zaa2</string>
    <string name="appID">YOUR_ZALO_APP_ID</string>
    <string name="zalosdk_app_id">YOUR_ZALO_APP_ID</string>
    <string name="zalosdk_login_protocol_schema">zalo-YOUR_ZALO_APP_ID</string>
</resources>
4.4 Create either MyApplication.kt in the same directory as MainActivity.

:warning: Replace package your.app.name with your app's package name. If you don't know your package name, you can find it at the 1st line in MainActivity.kt.

package your.app.name;  // <-- replace this

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import com.zing.zalo.zalosdk.oauth.ZaloSDKApplication;

class MyApplication : FlutterApplication(), PluginRegistry.PluginRegistrantCallback {
  override fun onCreate() {
    super.onCreate();
    ZaloSDKApplication.wrap(this);
  }
  override fun registerWith(registry: PluginRegistry) {}
}
4.5 Edit MainActivity.kt

:warning: Replace package your.app.name with your app's package name. If you don't know your package name, you can find it at the 1st line in MainActivity.kt.

package your.app.name;  // <-- replace this

import io.flutter.embedding.android.FlutterActivity
import android.content.Intent
import com.zing.zalo.zalosdk.oauth.ZaloSDK // <-- Add this

class MainActivity: FlutterActivity() {
    override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent) {
        super.onActivityResult(requestCode, resultCode, data)
        ZaloSDK.Instance.onActivityResult(this, requestCode, resultCode, data) // <-- Add this
    }
}
4.6 Now edit AndroidManifest.xml and provide a reference to your custom Application class:

:warning: MyApplication, MainActivity should be the same with the code have been edit

    <application
        android:name=".MyApplication"
        ...
        <activity
            android:name=".MainActivity"
4.7 Run app and call
    String hashKey = await ZaloLogin().init();

if project have been setup success it will show like this:

V/ZaloLogin(28932): ---------------------------------------------------------------------------
V/ZaloLogin(28932): |     Please add this Hash Key to Zalo developers dashboard for Login     |
V/ZaloLogin(28932): tUDfvw+YYoyciFpRM4WIRYeqtRI= <-- YOUR ANDROID HASH CODE
V/ZaloLogin(28932): ---------------------------------------------------------------------------
4.8 Add HASH CODE to zalo android setup dashboard

5. Android JAVA

Same with 4. Setup for Android Kotlin

Check folder example/android for java code version of MyApplication.kt and MainActivity.kt

6. Setup for iOS

6.1 Open /ios/Runner/Info.plist and add the following:

    ...
    <key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLName</key>
			<string>zalo</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>zalo-<YOUR_ZALO_APP_ID></string>
			</array>
		</dict>
	</array>
	<key>ZaloAppID</key>
	<string><YOUR_ZALO_APP_ID></string>
	<key>ZaloAppKey</key>
	<string><YOUR_ZALO_APP_SECRET_KEY></string>
    ...

6.2 After that, open ios/Runner/AppDelegate.swift and add code below:

    ...
    override func application(
        _ application: UIApplication,
        open url: URL,
        sourceApplication: String?,
        annotation: Any
    ) -> Bool {
        return ZDKApplicationDelegate.sharedInstance().application(application,
            open: url,
            sourceApplication: sourceApplication,
            annotation: annotation
        )
    }

    @available(iOS 9.0, *)
    override func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

        return ZDKApplicationDelegate
            .sharedInstance()
            .application(app,
                            open: url as URL?,
                            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as! String?,
                            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
        return false
    }

    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GeneratedPluginRegistrant.register(with: self)

        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }

6.3 If your project using Object-c add code to follow file ios/Runner/AppDelegate.m:


...

- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options {
  return [[ZDKApplicationDelegate sharedInstance] application:application openURL:url options:options];
}

7. TODO LIST

TODO: Lấy danh sách bạn bè More info: https://developers.zalo.me/docs/sdk/android-sdk/open-api/lay-danh-sach-ban-be-post-437

TODO: Gửi tin nhắn tới bạn bè More info: https://developers.zalo.me/docs/sdk/android-sdk/open-api/gui-tin-nhan-toi-ban-be-post-1205

TODO: Đăng bài viết More info: https://developers.zalo.me/docs/sdk/android-sdk/open-api/dang-bai-viet-post-1212

TODO: Mời sử dụng ứng dụng More info: https://developers.zalo.me/docs/sdk/android-sdk/open-api/moi-su-dung-ung-dung-post-1218

TODO: Gửi tin nhắn tới bạn bè More info: https://developers.zalo.me/docs/sdk/android-sdk/tuong-tac-voi-app-zalo/gui-tin-nhan-toi-ban-be-post-452 Future shareMessage() async {}

TODO: Đăng bài viết More info: https://developers.zalo.me/docs/sdk/android-sdk/tuong-tac-voi-app-zalo/dang-bai-viet-post-447

Duy Thien GitHub avatar
GitHub 작성자

Duy Thien ↗

Just a learner.

언어DartJavaObjective-CRubyShellSwiftHTMLPythonKotlin

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 2 개

  • flutter{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗