ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

C#用NCMB SDK(非公式)の使い方(会員登録/ログイン)

f:id:mbaasdevrel:20200710131602p:plain

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制御されたデータへのアクセス、更新なども可能になります。安全にデータを扱う上で大事な機能になりますので、ぜひ使い方を覚えてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。