XamarinはC#を使ったクロスプラットフォームなスマートフォンアプリ開発環境です。最近、コロナウイルス追跡アプリを作ったフレームワークとして注目されるようになりました。
NCMBではC#を使った開発環境としてUnityに対応していますが、あれはiOS/Android SDKをラッピングしているので、Xamarinでそのまま利用できません。C#のみで実装する必要があります。
ここでは現在開発中のXamarin用SDK(非公式)の使い方を紹介します。今回は会員の登録およびログイン機能について解説します。
インストールについて
C# SDKはNuGetで公開していますので、Visual Studioなどでインポートできます。
使い方
使い方はまず、NCMBClientを読み込みます。
using NCMBClient;
初期化
初期化は次のようにします。アプリケーションキー、クライアントキーは自分のものに変更してください。
var applicationKey = "70d...934"; var clientKey = "4d0...dff"; var ncmb = new NCMB(applicationKey, clientKey);
会員登録処理について
同期処理、非同期処理のメソッドをそれぞれ用意しています。 userName を mailAddress に変えればメールアドレス認証になります。
同期処理の場合
var user = this._ncmb.User(); user.Set("userName", "TestUser"); // ID認証 user.Set("mailAddress", "test@example.com"); // メールアドレス認証 user.Set("password", "TestPass"); await user.SignUp();
非同期処理の場合
非同期処理も同じで、メソッドが SignUpAsync になるだけです。
var user = this._ncmb.User(); user.Set("userName", "TestUser"); // ID認証 user.Set("mailAddress", "test@example.com"); // メールアドレス認証 user.Set("password", "TestPass"); await user.SignUpAsync();
ログイン(ID/パスワード)
ログイン処理も同期処理、非同期処理を用意しています。こちらもuserNameをmailAddressに変えればメールアドレス認証になります。
同期処理の場合
var user = this._ncmb.User(); user.Set("userName", "TestLogin"); // ID認証 user.Set("mailAddress", "test@example.com"); // メールアドレス認証 user.Set("password", "TestLogin"); if (user.Login()) { // Login success } else { // Login Failure }
非同期処理の場合
非同期処理の場合は LoginAsync
になります。
var user = this._ncmb.User(); user.Set("userName", "TestLogin"); user.Set("mailAddress", "test@example.com"); // メールアドレス認証 user.Set("password", "TestLogin"); if (await user.LoginAsync()) { // Login success } else { // Login Failure }
会員削除
会員削除はNCMBObjectと同様にDelete/DeleteAsyncメソッドになります。
// 同期の場合 user.Delete(); // 非同期の場合 await user.DeleteAsync();
ログアウト
ログアウト処理はセッショントークンの削除になります。会員クラスではなく、NCMBクラスに実装してあります。
ncmb.Logout();
コードについて
コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。
まとめ
認証ができれば、ACL制御されたデータへのアクセス、更新なども可能になります。安全にデータを扱う上で大事な機能になりますので、ぜひ使い方を覚えてください。