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.