Plugin Flutter pour se connecter via VK.com.
Ajoutez facilement la fonction de connexion VK dans votre application. Informations sur le profil utilisateur incluses.
VK SDK Version, utilisée dans le plugin:
iOS: ^ 1.6 (Cocoapods)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 et plus.
Android 5.0 et plus récent (SDK 21 ). compileSdkVersion
minimum 31 .
Pour utiliser ce plugin:
Ajoutez flutter_login_vk
comme dépendance dans votre fichier pubSpe.yaml;
Créez une application sur VK.com
Configuration Android;
configurer iOS;
Configuration de l'application VK.com supplémentaire;
Utilisez le plugin dans l'application.
Voir la documentation sur VK.com pour une information complète:
SDK iOS
SDK Android
Et voici des instructions en russe si c'est votre langue maternelle (руссая Версия).
Créez une application sur vk.com https://vk.com/editapp?act=Create
Entrez "Title".
Sélectionnez l'application autonome comme "plate-forme".
Cliquez sur "Connecter l'application".
Une application sera créée. Sélectionnez maintenant l'onglet "Paramètres" et copiez "l'application ID" (référencé en [APP_ID]
dans cette lecture).
Définissez Package name for Android
- le nom de votre package pour l'application Android ( package
d'attribut dans AndroidManifest.xml
).
Définissez Main activity for Android
- votre classe d'activité principale (avec package). Par défaut, ce serait com.yourcompany.yourapp.MainActivity
.
Pour remplir Signing certificate fingerprint for Android
vous devez créer une empreinte digitale SHA1 comme décrit dans la documentation (sans SHA1:
Prefix). Faites attention : vous devez retirer toutes les colons de la chaîne d'empreintes digitales. Ajoutez des empreintes digitales pour les certificats de débogage et de libération. Remarque: Si votre application utilise la signature de l'application Google Play, vous devriez obtenir un certificat d'empreinte digitale SHA-1 à partir de Google Play Console.
Cliquez sur "Enregistrer".
Ajoutez votre identifiant de bundle - Définissez App Bundle ID for iOS
(vous pouvez le trouver dans Xcode: Runner - Target Runner - Général, Identity
de section, Bundle Identifier
de champ).
Définissez également App ID for iOS
, c'est vous SKU
(vous pouvez le trouver dans App Store Connect: Mes applications - {votre application} - App Store - Informations sur l'application, Section "Informations générales"). Surtout, ce n'est souvent pas la même chose que l'identifiant du bundle.
Cliquez sur "Enregistrer".
EDIT AndroidManifest.xml
( android/app/src/main/AndroidManifest.xml
):
Ajoutez l'autorisation INTERNET
à la racine de <manifest>
, si vous ne l'avez pas fait (probablement vous l'avez):
<use-permission Android: name = "android.permission.internet" />
Ajoutez une activité à l' application
de la section:
<Activité Android: name = "com.vk.sdk.vkserviceActivity" Android: Label = "ServiceActivity" Android: thème = "@ style / vk.transparent" />
Ajoutez votre identifiant d'application VK dans le fichier de ressources (par exemple strings.xml
), en remplaçant [APP_ID]
par votre identifiant d'application:
<Sessiers> <Integer name = "com_vk_sdk_appid"> [app_id] </peger> </ Ressources>
Ajouter des règles -keep class com.vk.** { *; }
Dans votre fichier Proguard ( android/app/proguard-rules.pro
).
Voir Full AndroidManifest.xml
dans l'exemple.
Configurer Info.plist
( ios/Runner/Info.plist
). Vous pouvez le modifier en tant que fichier texte à partir de votre IDE, ou vous pouvez ouvrir Project ( ios/Runner.xcworkspace
) dans Xcode.
Dans XCode, cliquez avec le bouton droit sur Info.plist
, et choisissez Open As Source Code
.
Copiez et collez l'extrait XML suivant dans le corps de votre fichier ( <dict>...</dict>
), en remplaçant [APP_ID]
par votre identifiant de demande:
<Key> CFBundleurlTypes </Key> <Array> <Dect> <Key> CFBundleurlschemes </Key> <Array> <string> vk [app_id] </ string> </brose> </DICT> </brose>
Ajoutez également à Info.plist
Body ( <dict>...</dict>
):
<Key> LSAPPLICATIONQUEIRESSCHEMES </KEY> <Array> <string> vk </ string> <string> vk-share </string> <string> VKAUTHORISE </string> </brose>
Entrez votre identifiant d'application VK.
<Tey> Vkappid </Key> <string> [app_id] </ string>
Voir Full Info.plist
dans l'exemple.
CFBundleURLTypes
ou LSApplicationQueriesSchemes
dans votre Info.plist
. Si vous en avez, vous devez fusionner leurs valeurs, au lieu d'ajouter une clé en double.
Si vous souhaitez utiliser scope=nohttps
, que nous ne recommandons pas fortement, vous devez également ajouter NSAppTransportSecurity
, consultez la documentation.
Accédez à mes applications et cliquez sur "Gérer" sur votre application.
Sur l'onglet "Informations", vous devriez:
Entrez "Description".
Sélectionnez une "catégorie" appropriée.
Téléchargez une petite icône "32x32 icône".
Cliquez sur "Enregistrer".
Télécharger "Banner carré" et "une bannière carrée pour le catalogue" - l'utilisateur peut le voir.
Configurez d'autres paramètres si vous en avez besoin.
Que passer à l'onglet "Setting" et activer l'application: modifiez "l'état de l'application" de Application off
à Application on and visible to all
.
Cliquez sur "Enregistrer".
Tout d'abord, vous devez créer une instance de VKLogin
. Avant tout appel de méthode ou vérification accessToken
, vous devez initialiser VK SDK:
VK final = vklogin (); attendre vk.initsdk ();
Vous pouvez maintenant utiliser le plugin.
Caractéristiques:
Connectez-vous via VK.com;
Obtenez un jeton d'accès;
Obtenir le profil utilisateur;
recevoir un e-mail utilisateur;
Vérifiez si connecté;
déconnectez-vous.
Exemple de code:
Package d'import: flutter_login_vk / flutter_login_vk.dart '; // créer une instance de vkloginfinal vk = vklogin (); // initialiseaWait vk.initsdk (); // log infinal res = wait vk.login (scope: [vkscope.email , Vkscope.friends, ]); // vérifier le résultat (res.isvalue) {// il n'y a pas d'erreur, mais nous ne savons pas encore // Si l'utilisateur s'est connecté ou non. // vous devriez vérifier iscanceled Résultat final vkloginResult = res.asvalue! .Value; if (result.isceled) {// L'utilisateur annule la connexion } else {// Connecté dans // Envoi du jeton d'accès au serveur pour la validation et AuthFinal VKAccessToken? AccessToken = result.AccessToken; if (AccessToken! = null) {print ('Access Token: $ {AccessToken.Token}'); // Obtenir les données de profil Final Profileres = attendre vk.getUserProfile (); profil final = profileres.asvalue? .Value; if (profil! = null) {print ('bonjour, $ {profil.firstName}! you id: $ {profil.userid}'); } // recevoir un e-mail (puisque nous demandons les autorisations par e-mail) Email final = attendre vk.getUserEmail (); imprimer («et votre e-mail est $ e-mail»); } else {print ('quelque chose ne va pas'); } } } else {// Connexion a échoué final errorres = res.Aserror!; print ('Erreur pendant la connexion: $ {errorres.error}'); }
Lorsque vous appelez initSdk()
, le plugin essaie de restaurer la session précédente. Si le jeton est expiré - il sera rafraîchi.
De plus, lors de la restauration, l'écran de connexion peut être affiché à l'utilisateur (uniquement si l'utilisateur était connecté).
En plus, vous pouvez passer à scope
initSdk()
requise, et si la session utilisateur actuelle ne le fournit pas - l'utilisateur sera déconnecté.
Vous pouvez également spécifier la version API à utiliser, mais vous ne devriez pas.