El complemento Flutter para iniciar sesión a través de VK.com.
Agregue fácilmente la función de inicio de sesión de VK en su aplicación. Información del perfil de usuario incluida.
Versión VK SDK, utilizada en el complemento:
iOS: ^1.6 (Cocoapods)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 y superior.
Android 5.0 y más nuevo (SDK 21 ). Mínimo compileSdkVersion
31 .
Para usar este complemento:
Agregue flutter_login_vk
como dependencia en su archivo pubspec.yaml;
Crea una aplicación en VK.com
Configuración de Android;
configurar iOS;
Configuración adicional de la aplicación VK.com;
Use el complemento en la aplicación.
Consulte la documentación en VK.com para obtener información completa:
iOS SDK
SDK de Android
Y aquí hay instrucciones en ruso si es su idioma nativo (рibilidade версия).
Cree una aplicación en VK.com https://vk.com/editapp?act=create
Ingrese "Título".
Seleccione la aplicación independiente como "plataforma".
Haga clic en "Conecte la aplicación".
Se creará una aplicación. Ahora seleccione la pestaña "Configuración" y copie "ID de aplicación" (referenciado como [APP_ID]
en este ReadMe).
Establezca Package name for Android
: el nombre de su paquete para la aplicación Android ( package
de atributos en AndroidManifest.xml
).
Establezca Main activity for Android
: su clase de actividad principal (con paquete). Por defecto, sería com.yourcompany.yourapp.MainActivity
.
Para completar Signing certificate fingerprint for Android
debe crear huellas digitales SHA1 como se describe en la documentación (sin SHA1:
prefijo). Preste atención : debe eliminar todos los colons de la cadena de huellas digitales. Agregue huellas dactilares para la depuración y los certificados de lanzamiento. Nota: Si su aplicación usa la firma de la aplicación Google Play, debe obtener la huella digital del certificado SHA-1 de la consola de Google Play.
Haga clic en "Guardar".
Agregue el identificador de su paquete - Establezca App Bundle ID for iOS
(puede encontrarlo en Xcode: Runner - Runner de destino - General, Identity
de sección, Bundle Identifier
de campo).
Establezca también App ID for iOS
, es usted SKU
(puede encontrarla en App Store Connect: mis aplicaciones - {su aplicación} - App Store - Información de la aplicación, sección "Información general"). La mayoría de la mayoría a menudo no es lo mismo que el ID de paquete.
Haga clic en "Guardar".
Editar AndroidManifest.xml
( android/app/src/main/AndroidManifest.xml
):
Agregue el permiso INTERNET
en la raíz de <manifest>
, si no lo ha hecho (probablemente lo haya hecho):
<usos-permission android: name = "android.permission.internet" />
Agregue una actividad a la application
de sección:
<Activity Android: name = "com.vk.sdk.vkserviceActivity" Android: Label = "ServiceActivity" android: thema = "@style /vk.transparent" />
Agregue su identificador de aplicación VK al archivo de recursos (por ejemplo, strings.xml
), reemplazando [APP_ID]
con su ID de aplicación:
<Recursos> <Integer name = "com_vk_sdk_appid"> [app_id] </integer> </cuenta>
Agregar reglas -keep class com.vk.** { *; }
En el archivo Proguard ( android/app/proguard-rules.pro
).
Ver AndroidManifest.xml
completo en el ejemplo.
Configurar Info.plist
( ios/Runner/Info.plist
). Puede editarlo como un archivo de texto desde su IDE, o puede abrir Project ( ios/Runner.xcworkspace
) en XCode.
En Xcode, haga clic con el botón derecho en Info.plist
, y elija Open As Source Code
.
Copie y pegue el siguiente fragmento XML en el cuerpo de su archivo ( <dict>...</dict>
), reemplazando [APP_ID]
con su ID de aplicación:
<Key> cfbundleUrlTypes </key> <RARAY> <Edt> <Key> cfbundleurlschemes </ey clave> <RARAY> <String> vk [app_id] </string> </RACHE> </dict> </RACE>
También agregue a Info.plist
Body ( <dict>...</dict>
):
<Key> LSAPPLATIONQUERIESSCHEMES </ key> <RARAY> <String> VK </string> <String> vk-share </string> <String> vkauthorize </string> </RACE>
Ingrese su identificador de aplicación VK.
<Key> VKAppid </Key> <String> [app_id] </string>
Vea Info.plist
completa. Plantado en el ejemplo.
CFBundleURLTypes
o LSApplicationQueriesSchemes
claves en su Info.plist
. Si lo ha hecho, debe fusionar sus valores, en lugar de agregar una clave duplicada.
Si desea usar scope=nohttps
, que no recomendamos firmemente, también debe agregar NSAppTransportSecurity
, consulte la documentación.
Vaya a mis aplicaciones y haga clic en "Administrar" en su aplicación.
En la pestaña "Información" debe:
Ingrese "Descripción".
Seleccione una "categoría" adecuada.
Sube un pequeño icono "32x32 icono".
Haga clic en "Guardar".
Cargue "Banner cuadrado" y "Un banner cuadrado para el catálogo": el usuario puede verlo.
Configurar otras configuraciones si la necesita.
Entonces, vaya a la pestaña "Configurar" y enciende la aplicación: Cambie el "estado de la aplicación" desde Application off
A Application on and visible to all
.
Haga clic en "Guardar".
Primero, debe crear una instancia de VKLogin
. Que, antes de cualquier llamada de método o verificación de accessToken
, debe inicializar VK SDK:
final vk = vklogin (); espera vk.initsdk ();
Ahora puede usar el complemento.
Características:
Iniciar sesión a través de VK.com;
Obtenga token de acceso;
Obtener perfil de usuario;
recibir correo electrónico de usuario;
Compruebe si se inicia sesión;
finalizar la sesión.
Código de muestra:
import 'paquete: flutter_login_vk/flutter_login_vk.dart'; // Cree una instancia de vkloginfinal vk = vklogin (); // inicializeawait vk.initsdk (); // log infinal res = weit vk.login (scope: [vkscope.email , Vkscope.rome, ]); // verifique el resultado (res.isValue) {// No hay error, pero aún no lo sabemos // Si el usuario inició sesión o no. // Debe verificar IsCanceled resultado final de vkloginResult = res.asvalue! .Value; if (result.iscanceled) {// Usuario Cancelar Iniciar sesión } else {// iniciar sesión // enviar token de acceso al servidor para la validación y autfinal vkaccessToken? accessToken = result.accessToken; if (accessToken! = null) {print ('access token: $ {accesstoken.token}'); // Obtener datos de perfil Profileres finales = ALEA VK.GETUSERPROFILE (); perfil final = Profileres.asValue? .Value; if (perfil! = null) {print ('hello, $ {perfil.firstname}! You id: $ {perfil.userid}'); } // Obtener correo electrónico (ya que solicitamos permisos de correo electrónico) Correo electrónico final = ALEA VK.GETUSEREMAIL (); imprimir ('y su correo electrónico es $ correo electrónico'); } else {print ('algo sale mal'); } } } else {// Iniciar sesión final errorres = res.aserror!; imprimir ('Error mientras inicia sesión: $ {Errorres.error}'); }
Cuando llame initSdk()
, complementan que intente restaurar la sesión anterior. Si ha expirado el token, se actualizará.
Además, durante la restauración, la pantalla de inicio de sesión se puede mostrar al usuario (solo si el usuario se registró).
Además, puede pasar al scope
requerido initSdk()
, y si la sesión de usuario actual no lo proporciona, el usuario se registrará.
También puede especificar la versión API para usar, pero no debería.