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

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

C#用NCMB SDK(非公式)の使い方(権限管理の使い方)

f:id:mbaasdevrel:20200710131602p:plain

XamarinはC#を使ったクロスプラットフォームなスマートフォンアプリ開発環境です。最近、コロナウイルス追跡アプリを作ったフレームワークとして注目されるようになりました。

NCMBではC#を使った開発環境としてUnityに対応していますが、あれはiOS/Android SDKをラッピングしているので、Xamarinでそのまま利用できません。C#のみで実装する必要があります。

ここでは現在開発中のC#用SDK(非公式)の使い方を紹介します。今回はACLの使い方について解説します。

インストールについて

C# SDKはNuGetで公開していますので、Visual Studioなどでインポートできます。

使い方

使い方はまず、NCMBClientを読み込みます。

using NCMBClient;

初期化

初期化は次のようにします。アプリケーションキー、クライアントキーは自分のものに変更してください。

var applicationKey = "70d...934";
var clientKey = "4d0...dff";

var ncmb = new NCMB(applicationKey, clientKey);

権限管理の使い方

権限管理はNCMBAclクラスを使います。

var acl = _ncmb.Acl();
acl.SetPublicReadAccess(true);
acl.SetPublicWriteAccess(false);
acl.SetRoleReadAccess("admin", true);
acl.SetRoleWriteAccess("admin", true);

用意されているのは次のメソッドです。

  • SetPublicReadAccess(Boolean bol)
  • SetPublicWriteAccess(Boolean bol)
  • SetUserReadAccess(NCMBUser user, Boolean bol)
  • SetUserWriteAccess(NCMBUser user, Boolean bol)
  • SetRoleReadAccess(String name, Boolean bol)
  • SetRoleWriteAccess(String name, Boolean bol)

後はこれをデータストアなどのオブジェクトに適用するだけです。

var message = "Hello, world";
var item = _ncmb.Object("DataStoreTest");
item.Set("message", message);
item.SetAcl(acl);
item.Save();

NCMBUserはNCMBObjectを継承していますので、同じくAclが利用できます。

コードについて

コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。

まとめ

ACLを使うことで、データストアなどをセキュアに、安全に運用できるようになります。みなさんのC#アプリ、XamarinアプリでもNCMBを活用してください。

中津川 篤司

中津川 篤司

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