ニフティクラウド mobile backendのUnity SDKを使い倒してみる-NCMBUser編-


## .Add .SignUpAsync

とりあえず登録

```csharp:NCMB-test.cs
using UnityEngine;
using System.Collections;
using NCMB;
using System.Collections.Generic;


public class NCMB_test : MonoBehaviour {
	
	// Use this for initialization
	void Start () {
		// 新規登録
		NCMBUser user = new NCMBUser();
		user.UserName = "user1";
		user.Password = "password1";
		user.Email = "email@example.com";
		
		// 任意フィールドに値を追加 
		user.Add("phone", "987-654-3210");
		user.SignUpAsync ((NCMBException e) => { 
			if (e != null) {
				UnityEngine.Debug.Log ("新規登録に失敗: " + e.ErrorMessage);
			} else {
				UnityEngine.Debug.Log ("新規登録に成功");
			}
		});
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

```

結果こんな風になる

![スクリーンショット 2015-10-12 0.30.00.png](https://qiita-image-store.s3.amazonaws.com/0/55227/93abbe73-bce0-aed9-1edd-c649f5abe1c6.png "スクリーンショット 2015-10-12 0.30.00.png")

以下から
void Start ()
の中の部分だけ記述する

## .RequestAuthenticationMailAsync

メールによる会員登録を行うメソッド

```csharp:NCMB-test.cs
NCMBUser.RequestAuthenticationMailAsync ("email@example.com", (NCMBException e) => {
			if (e != null) {
				UnityEngine.Debug.Log ("新規登録に失敗: " + e.ErrorMessage);
			} else {
				UnityEngine.Debug.Log ("新規登録に成功");
			}
		});
```

するとメールアドレスにメールがとどき、そこから下記のフォームへと飛べる
![スクリーンショット 2015-10-12 10.11.49.png](https://qiita-image-store.s3.amazonaws.com/0/55227/b231d9c3-8f40-85da-033a-99c700ba0c6c.png "スクリーンショット 2015-10-12 10.11.49.png")

登録を行うとDBも更新される
![スクリーンショット 2015-10-12 10.38.00.png](https://qiita-image-store.s3.amazonaws.com/0/55227/8746b4a3-a270-ad80-36fa-6a831c0dd7db.png "スクリーンショット 2015-10-12 10.38.00.png")

## .LoginAsync  .LogInWithMailAddressAsync

```csharp:NCMB-test.cs
NCMBUser.LogInAsync ("user1", "password1", (NCMBException e) => {    
    if (e != null) {
        UnityEngine.Debug.Log ("ログインに失敗: " + e.ErrorMessage);
    } else {
        UnityEngine.Debug.Log ("ログインに成功！");
    }
});

```

```csharp:NCMB-test.cs
NCMBUser.LogInWithMailAddressAsync ("email@example.com", "password", (NCMBException e) => {
    if (e != null) {
        UnityEngine.Debug.Log ("ログインに失敗: " + e.ErrorMessage);
    } else {
        UnityEngine.Debug.Log ("ログインに成功！");
    }
});
```

ログインは
ID・PASSのユーザーは.LogInAsyncでしかログインできなかった（メールアドレスがあっても）
mail・PASSのユーザーは.LogInWithMailAddressAsyncでしかログインできなかった（自動発行されたIDを使っても）

## .CurrentUser

今ログイン中のユーザーを取得するもの

```csharp:NCMB-test.cs
NCMBUser.LogInAsync ("user1", "password1", (NCMBException e) => {    
			if (e != null) {
				UnityEngine.Debug.Log ("ログインに失敗: " + e.ErrorMessage);
			} else {
				UnityEngine.Debug.Log ("ログインに成功！");
			}
		});

		System.Threading.Thread.Sleep (5000);

		NCMBUser currentUser = NCMBUser.CurrentUser;
		if (currentUser != null) {
			// ログイン中のユーザーの取得に成功
			UnityEngine.Debug.Log ("ログイン中のユーザー: " + currentUser.UserName);
		} else {
			// 未ログインまたは取得に失敗
			UnityEngine.Debug.Log ("未ログインまたは取得に失敗");
		}

```


##  .RequestPasswordResetAsync

パスワードの再発行処理

```csharp:NCMB-test.cs
NCMBUser.RequestPasswordResetAsync ("email@example.com", (NCMBException e) => {    
			if (e != null) {
				UnityEngine.Debug.Log ("パスワードリセット要求に失敗: " + e.ErrorMessage);
			} else {
				UnityEngine.Debug.Log ("パスワードリセット要求に成功");
			}
		});

```

これを使うと勝手に、メールアドレスにメールが飛んでくる
そこに、仮パスワードと再発行処理のサイトがあるのでそちらを見ると・・・以下の画面が出る

![スクリーンショット 2015-10-12 13.34.43.png](https://qiita-image-store.s3.amazonaws.com/0/55227/36821744-039a-4ae7-b8e1-6230a56452d2.png "スクリーンショット 2015-10-12 13.34.43.png")

必要項目を入力したら再発行ができる


NCMBUSERはこんなところで・・・