VK.comを介してログインするフラッタープラグイン。
アプリケーションにVKログイン機能を簡単に追加できます。ユーザープロファイル情報が含まれています。
プラグインで使用されるVK SDKバージョン:
iOS: ^1.6 (cocoapods)
Android: 3.5.0 (Maven Core、API)
iOS 9.0以上。
Android 5.0およびNewer(SDK 21 )。最小compileSdkVersion 31 。
このプラグインを使用するには:
pubspec.yamlファイルの依存関係としてflutter_login_vk追加します。
VK.comでアプリを作成します
Androidのセットアップ;
iOSをセットアップします。
追加のVK.comアプリのセットアップ。
アプリケーションでプラグインを使用します。
詳細については、VK.comのドキュメントを参照してください。
iOS SDK
Android SDK
そして、それがあなたの母国語である場合、ここにロシア語の指示があります(陶芸≥в針)。
vk.com https://vk.com/editapp?act=createでアプリを作成します
「タイトル」を入力します。
「プラットフォーム」としてスタンドアロンアプリを選択します。
[アプリを接続]をクリックします。
アプリケーションが作成されます。 [設定]タブを選択し、「アプリID」(このREADMEで[APP_ID]として参照)をコピーします。
Package name for Android設定-Androidアプリケーションのパッケージ名( AndroidManifest.xmlの属性package )。
Main activity for Android - メインアクティビティクラス(パッケージ付き)を設定します。デフォルトでは、 com.yourcompany.yourapp.MainActivityになります。
Signing certificate fingerprint for Androidを埋めるには、ドキュメントで説明されているようにSHA1フィンガープリントを作成する必要があります( SHA1:プレフィックスなし)。注意してください:指紋弦からすべてのコロンを削除する必要があります。デバッグおよびリリース証明書の指紋を追加します。注:アプリケーションがGoogle Playアプリの署名を使用している場合は、Google Playコンソールから証明書SHA-1フィンガープリントを取得する必要があります。
[保存]をクリックします。
バンドル識別子を追加 - App Bundle ID for iOSを設定します(Xcode:Runner -Target Runner-一般、セクションIdentity 、フィールドBundle Identifierで見つけることができます)。
また、 App ID for iOSを設定します。それはSKUです(App Store Connect:My Apps -{Your Application} - App Store -App Information、セクション「一般情報」で見つけることができます)。多くの場合、バンドルIDと同じではありません。
[保存]をクリックします。
AndroidManifest.xml ( android/app/src/main/AndroidManifest.xml )の編集:
<manifest>のルートにINTERNET許可を追加してください。
<outes-permission android:name = "android.permission.internet" />
セクションapplicationにアクティビティを追加します。
<アクティビティAndroid:name = "com.vk.sdk.vkserviceactivity" android:label = "serviceactivity" android:theme = "@style /vk.transparent" />
VKアプリケーション識別子をリソースファイル( strings.xmlなど)に追加し、 [APP_ID]アプリケーション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のテキストファイルとして編集するか、XcodeでProject( ios/Runner.xcworkspace )を開くことができます。
xcodeでInfo.plistを右クリックして、 Open As Source Codeを選択します。
次のXMLスニペットをファイルの本文( <dict>...</dict> )にコピーして貼り付け、 [APP_ID]アプリケーションIDに置き換えます。
<key> cfbundleurltypes </key>
<配列>
<dict>
<キー> cfbundleurlschemes </key>
<配列>
<文字列> vk [app_id] </string>
</array>
</dict>
</array>また、 Info.plist body( <dict>...</dict> )に追加します:
<key> lsapplicationqueriesschemes </key>
<配列>
<文字列> vk </string>
<文字列> vk-share </string>
<文字列> vkauthorize </string>
</array>VKアプリケーション識別子を入力します。
<key> vkappid </key> <文字列> [app_id] </string>
例の完全なInfo.plist参照してください。例を参照してください。
Info.plistにCFBundleURLTypesまたはLSApplicationQueriesSchemesキーが既にあるかどうかを確認してください。ある場合は、重複キーを追加する代わりに、値をマージする必要があります。
scope=nohttpsを使用する場合は、強くお勧めしません。また、 NSAppTransportSecurityを追加する必要があります。ドキュメントを参照してください。
アプリに移動して、アプリの[管理]をクリックします。
タブ「情報」で:
「説明」を入力します。
適切な「カテゴリ」を選択します。
小さなアイコン「32x32アイコン」をアップロードします。
[保存]をクリックします。
「四角いバナー」と「カタログ用の四角いバナー」をアップロードする - ユーザーはそれを見ることができます。
必要な場合は他の設定をセットアップします。
[設定]タブに移動してアプリケーションをオンにするよりも、 Application offからApplication on and visible to all 。
[保存]をクリックします。
まず、 VKLoginのインスタンスを作成する必要があります。よりも、メソッド呼び出しまたはaccessTokenをチェックする前に、VK SDKを初期化する必要があります。
final vk = vklogin(); await vk.initsdk();
これで、プラグインを使用できます。
特徴:
VK.com経由でログインします。
アクセストークンを取得します。
ユーザープロファイルを取得します。
ユーザーメールを取得します。
ログインしているかどうかを確認します。
ログアウト。
サンプルコード:
インポート 'パッケージ:flutter_login_vk/flutter_login_vk.dart'; // vkloginfinal vk = vklogin(); // initializeawait vk.initsdk(); // log infinal res = await vk.login(範囲:[Vkscope.email 、vkscope.friends、
]); // resultif(res.isvalue){//エラーはありませんが、まだわかりません
//ユーザーがログインしているかどうか。
// IsCanceledを確認する必要があります
最終vkloginResult result = res.asvalue!.value; if(result.iscanceled){//ユーザーはログインをキャンセルします
} else {//ログイン//検証のためにアクセストークンをサーバーに送信し、authfinal vkaccestoken? AccessToken = result.AccessToken; if(accessToken!= null){print( 'アクセストークン:$ {accesstoken.token}'); //プロファイルデータの最終PROFILERES = await vk.getUserProfile(); 最終プロファイル= profileres.asvalue?.value; if(profile!= null){print( 'hello、$ {profile.firstname}!you id:$ {profile.userid}');
} //電子メールを取得します(電子メール許可を要求するので)最終メール= await vk.getuseremail(); print( 'そしてあなたの電子メールは$ email');
} else {print( '何かがうまくいかない');
}
}
} else {// login failed
final errorres = res.aserror!; print( 'ログイン中のエラー:$ {errorres.error}');
}initSdk()呼び出すと、プラグインは前のセッションを復元してみてください。トークンが期限切れになった場合、更新されます。
また、復元中、ユーザーにログイン画面が表示される場合があります(ユーザーがログインされた場合のみ)。
さらに、 initSdk()必要なscopeに渡すことができ、現在のユーザーセッションがそれを提供しない場合、ユーザーはログアウトします。
また、使用するAPIバージョンを指定することもできますが、そうすべきではありません。