Плагин Flutter для входа через vk.com.
Легко добавить функцию входа в систему VK в ваше приложение. Информация о профиле пользователя включена.
Версия VK SDK, используемая в плагине:
iOS: ^1.6 (кокопод)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 и выше.
Android 5.0 и новее (SDK 21 ). Минимальный compileSdkVersion 31 .
Чтобы использовать этот плагин:
Добавить flutter_login_vk в качестве зависимости в вашем файле pubspec.yaml;
Создайте приложение на vk.com
Настройка Android;
настройка iOS;
Дополнительная настройка приложения VK.com;
Используйте плагин в приложении.
Смотрите документацию на VK.com для полной информации:
ios sdk
Android SDK
А вот инструкции по -русски, если это ваш родной язык (russkaya -ersip).
Создать приложение на vk.com https://vk.com/editapp?act=create
Введите «заголовок».
Выберите автономное приложение как «платформа».
Нажмите «Подключить приложение».
Приложение будет создано. Теперь выберите вкладку «Настройки» и скопируйте «Идентификатор приложения» (ссылка на [APP_ID] в этом чтении).
Установите Package name for Android - имя вашего пакета для приложения Android ( package атрибутов в AndroidManifest.xml ).
Установите Main activity for Android - ваш основной класс активности (с пакетом). По умолчанию это будет com.yourcompany.yourapp.MainActivity .
Чтобы заполнить Signing certificate fingerprint for Android вы должны создать отпечаток пальца SHA1, как описано в документации (без SHA1: PREFIX). Обратите внимание : вы должны удалить все колоны из строки отпечатков пальцев. Добавить отпечатки пальцев для отладки и сертификатов выпуска. Примечание. Если в вашем приложении используется подписание приложения Google Play, то вы должны получить сертификат SHA-1 отпечатков пальцев от Google Play Console.
Нажмите «Сохранить».
Добавьте свой идентификатор пакета - установите App Bundle ID for iOS (вы можете найти его в XCode: Runner - Target Runner - General, Identity секции, Bundle Identifier полевых веществ).
Также установите App ID for iOS , это вы SKU (вы можете найти его в App Store Connect: My Apps - {ваше приложение} - App Store - Информация о приложении, раздел «Общая информация»). В основном часто не то же самое, что идентификатор пакета.
Нажмите «Сохранить».
Редактировать AndroidManifest.xml ( android/app/src/main/AndroidManifest.xml ):
Добавьте разрешение INTERNET в корне <manifest> , если у вас нет (вероятно, у вас есть):
<users-permission android: name = "android.permission.internet" />
Добавьте действие в application раздела:
<Activity Android: name = "com.vk.sdk.vkserviceactivity" Android: Label = "ServiceActivity" Android: Theme = "@Style /Vk.transparent" />
Добавьте свой идентификатор приложения VK в файл ресурса (например, strings.xml ), заменив [APP_ID] на идентификатор вашего приложения:
<Ресурсы>
<integer name = "com_vk_sdk_appid"> [app_id] </integer>
</resources> Добавить правила -keep class com.vk.** { *; } В вашем Proguard File ( android/app/proguard-rules.pro ).
См. Полный AndroidManifest.xml в примере.
Настройте Info.plist ( ios/Runner/Info.plist ). Вы можете отредактировать его в виде текстового файла из вашего IDE, или вы можете открыть Project ( ios/Runner.xcworkspace ) в XCode.
В XCode Щелкните правой кнопкой мыши Info.plist и выберите Open As Source Code .
Скопируйте и вставьте следующий фрагмент XML в корпус вашего файла ( <dict>...</dict> ), заменить [APP_ID] на идентификатор вашего приложения:
<ключ> cfbundleurltypes </key>
<Array>
<dict>
<Key> cfbundleurlschemes </key>
<Array>
<string> vk [app_id] </string>
</array>
</dict>
</array> Также добавьте в корпус Info.plist ( <dict>...</dict> ):
<ключ> lsapplicationQueriesschemes </key>
<Array>
<string> vk </string>
<string> vk-share </string>
<string> vkauthorize </string>
</array>Введите идентификатор приложения VK.
<ключ> vkappid </key> <string> [app_id] </string>
Смотрите полную Info.plist в примере.
CFBundleURLTypes или LSApplicationQueriesSchemes в вашем Info.plist . Если у вас есть, вы должны объединить их значения, вместо того, чтобы добавлять дублированный ключ.
Если вы хотите использовать scope=nohttps , который мы настоятельно не рекомендуем , вы также должны добавить NSAppTransportSecurity , см. Документацию.
Перейдите в мои приложения и нажмите «Управление» в вашем приложении.
На вкладке «Информация», вы должны:
Введите «Описание».
Выберите подходящую «категорию».
Загрузите маленький значок "32x32 значок".
Нажмите «Сохранить».
Загрузите «квадратный баннер» и «квадратный баннер для каталога» - пользователь может его увидеть.
Настройка других настроек, если вам это нужно.
Чем перейдите на вкладку «Настройка» и включите приложение: изменить статус приложения »из Application off к Application on and visible to all .
Нажмите «Сохранить».
Во -первых, вы должны создать экземпляр VKLogin . Чем, прежде чем какой -либо метод вызова или проверка accessToken вы должны инициализировать VK SDK:
final vk = vklogin (); wait vk.initsdk ();
Теперь вы можете использовать плагин.
Функции:
Войдите через VK.com;
получить токен доступа;
Получить профиль пользователя;
Получить электронную почту пользователя;
Проверьте, зарегистрировано;
выходите из строя.
Пример кода:
Импорт 'пакет: flutter_login_vk/flutter_login_vk.dart'; // Создать экземпляр Vkloginfinal vk = vklogin (); // initiazeawait vk.intsdk (); // log infinal res = await vk.login (scope: [vkscope.email , Vkscope.friends,
]); // Проверить resultif (res.isvalue) {// нет ошибки, но мы еще не знаем
// Если пользователь вошел в систему или нет.
// Вы должны проверить Iscancell
окончательный vkloginResult result = res.asvalue! .value; if (result.iscancell) {// Пользовательский вход в систему
} else {// Вошли в // Отправить токен доступа на сервер для проверки и authfinal vkaccesstoken? accesstoken = result.accesstoken; if (accesstoken! = null) {print ('access token: $ {accesstoken.token}'); // Получить данные профиля Final Profileres = wait vk.getUserProfile (); Окончательный профиль = profileres.asvalue?.. Value; if (profile! = null) {print ('hello, $ {profile.firstname}! You Id: $ {profile.userid}');
} // Получить электронную почту (так как мы запрашиваем разрешения по электронной почте) окончательное письмо = await vk.getUseremail (); print (', а ваша электронная почта - $ amile');
} else {print ('что -то идет не так');
}
}
} else {// log внедрение не удалось
final errorres = res.aserror!; print ('ошибка во время входа в систему: $ {errorres.error}');
} Когда вы звоните initSdk() , плагин попробуйте восстановить предыдущий сеанс. Если токен истек - он будет обновлен.
Кроме того, во время восстановления экран журнала может быть показан пользователю (только в том случае, если пользователь был вошел в систему).
Кроме того, вы можете перейти к initSdk() требуемой scope , и если текущий сеанс пользователя не предоставит его - пользователь будет вычеркнут.
Также вы можете указать версию API для использования, но вы не должны.