Orientação gerada a partir de informações públicas. Apenas para referência.
Um plugin Flutter que habilita a autenticação nativa do Zalo em dispositivos Android e iOS. Ele se integra aos SDKs oficiais do Zalo para fornecer uma experiência de login sem interrupções para usuários que preferem fazer login com suas contas do Zalo. O plugin gerencia as configurações e fluxos de autenticação específicos da plataforma, abstraindo a complexidade dos desenvolvedores. Suporta recuperação segura de tokens e foi projetado para funcionar em aplicativos padrão do Flutter sem exigir conhecimento profundo de código nativo.
Casos de uso
Autenticação de usuário usando contas do Zalo
Integrando o login do Zalo em aplicativos móveis
Habilitar o login social para usuários vietnamitas
Simplificando o fluxo OAuth com Zalo
Adicionar o Zalo como provedor de identidade
Principais recursos
Integração nativa do SDK Zalo
Suporte multiplataforma (Android e iOS)
Manuseio seguro de token
Configuração mínima de boilerplate
Integração fácil com aplicativos Flutter
Indicado para
Aplicativos direcionados ao público vietnamita
Implementações de login social
Sistemas de autenticação que exigem suporte ao Zalo
Desenvolvedores usando o Flutter para aplicativos móveis
Projetos que precisam de acesso ao SDK nativo
Considerações
Requer instalação do aplicativo Zalo no dispositivo
É necessário configurar o ID do aplicativo Zalo e a URL de redirecionamento
Limitado à autenticação de conta Zalo
Configuração específica da plataforma necessária
Pode exigir aprovação para uso em produção
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
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
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 = awaitZaloLogin().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
<applicationandroid: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-dataandroid:name="flutterEmbedding"android:value="2" /><!-- ADD HERE --><meta-dataandroid:name="com.zing.zalo.zalosdk.appID"android:value="@string/appID" /><activityandroid:name="com.zing.zalo.zalosdk.oauth.BrowserLoginActivity"><intent-filter><actionandroid:name="android.intent.action.VIEW"/><categoryandroid:name="android.intent.category.DEFAULT"/><categoryandroid:name="android.intent.category.BROWSABLE"/><dataandroid: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
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
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