Mobage Platform にログインする

本チュートリアルで作成するサンプルコードは Native Tutorial Sample Download からダウンロードできます。

起動シーケンス

Mobage Native SDK を使ったアプリケーションの起動シーケンスは下図のようになります。
 

 

  1. [MBGPlatform initialize] によって初期化処理を行います。
  2. [[MBGPlatform sharedPlatform] setDelegate:] によってデリゲートを設定します。
  3. [[MBGPlatform sharedPlatform] checkLoginStatus] によってログイン状態を確認します。
  4. onLoginRequired が返ってきた場合、[MBGPlatform showLoginDialog] によってログインダイアログを表示します。
  5. onLoginComplete が返ってきたら Mobage へのログイン完了。
    ただし、onLoginComplete では User Id が取得できますが、User Id を変数に一旦保存し、もう一度 onLoginComplete が呼ばれた時の User Id が変わっていなければ、特に何もせず、もし変わっていたら現在のゲーム内で使用しているユーザデータを全て破棄し、ゲームを最初に戻して、タイトル画面から別の User Id でプレイするように実装する必要があります。これは、Mobage SDK に内包されるコミュニティ機能から、ログアウト機能が呼ばれた際に User Id が切り替わるケースがあるためです。

AppDelegate.m の編集

  • NSURLProtocolの利用について
    • NSURLProtocolを使用して「通信をフックする様な処理」や「キャッシュ機能」等を実装する場合、SDKが行っている処理を意図せず遮断してしまうことがあります。
    • SDKの処理を遮断してしまうと、ログインできない等の問題が発生致しますのでご利用の際はご注意ください。

Mobage Native SDK を使用する為に AppDelegate.m を修正します。
まずはじめに Mobage Native SDK の機能を使用する為に必要なヘッダファイルをインポートします。

次に Mobage Native SDK を有効にする為に
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
を以下のように書き換えます。

各メソッドの解説

initialize

初期化の処理を行います。MBGPlatform#initialize メソッドでは、consumerKey, consumerSecret の他に、リージョンや環境、appId 等を指定します。

引数

設定内容

region

MBG_REGION_JP

serverType

MBG_SANDBOX

consumerKey

${IOS_SDK_CONSUMER_KEY}

consumerSecret

${IOS_SDK_CONSUMER_SECRET}

appId

${MOBAGE_APPLICATION_ID}

setDelegate

Mobage Native SDK からのイベントを受け取る為の設定です。

checkLoginStatus

アプリケーション起動時に Mobage へのログインステータスを確認し起動ポップアップ(ログイン画面等)を表示するイベントを受ける為のメソッドです。

ログイン状態であっても起動ポップアップ(アップグレード訴求等)が表示される際に onLoginRequired が呼び出される場合がございますので Mobage へのログイン状態を確認する為には ご使用頂けません

 

MBGPlatformDelegate Protocol の実装を宣言する

Mobage Native SDK のログイン周りの機能は MBGPlatformDelegate によって通知されます。まずはじめに、MBGPlatformDelegate Protocol の実装を宣言します。

本チュートリアルでは実装ファイル内で無名カテゴリを使用して Protocol の実装宣言を行っています。ヘッダファイルにて Protocol の宣言を行っても問題はございません。

 

MBGPlatformDelegate メソッドの実装を実装する

Mobage Native SDK からの各種イベント通知を処理する為のデリゲートメソッドを実装します。

onLoginRequiredonLoginComplete は通常会員へのアップグレード訴求、メールアドレス登録訴求時等にも呼び出される場合がございます。その際に checkProgress() のような実装を行わずに onLoginComplete 内でゲームの初期化を行ってしまうと訴求時に毎回ゲームが初期化されてしまうのでご注意ください。
また、 onLoginComplete では User Id が取得できますが、User Id を変数に一旦保存し、もう一度 onLoginComplete が呼ばれた時の User Id が変わっていなければ、特に何もせず、もし変わっていたら現在のゲーム内で使用しているユーザデータを全て破棄し、ゲームを最初に戻して、タイトル画面から別の User Id でプレイするように実装する必要があります。これは、Mobage SDK に内包されるコミュニティ機能から、ログアウト機能が呼ばれた際に User Id が切り替わるケースがあるためです。

 

ライフサイクルメソッドの実装

Mobage Native SDK Android ではライフサイクルメソッドの実装が必要ですが、Mobage Native SDK 1.4.3.3 iOS 以降ではライフサイクルメソッドの実装は必要ございません。
 

ログインユーザーの情報を取得する

Mobage Native SDK の機能を使って Mobage Platform へログインしたユーザーの情報を取得する為に - (void)gameStart メソッドを下記のように変更しました。

 

プロジェクトの実行

Mobage へのログインができるようになったのでプロジェクトを実行して確認を行います。"⌘ + R" または Xcode 左上の "Run ボタン" を押してください。アプリケーションを実行すると下記のようになります。

  1. Mobage のスプラッシュスクリーンが表示されます
    Mobage SDK にはスプラッシュスクリーン用の画像が含まれておりません。(スプラッシュスクリーンの画像を設定しない場合真っ黒な画面が表示されます)
    下記画像は Mobage のスプラッシュスクリーンに変更した場合の画像となります。
    スプラッシュスクリーンを変更する方法はログイン画面等における画像の変更方法をご確認下さい。




  2. ログインダイアログが表示されます
    ログインダイアログの背景画像を変更する方法はログイン画面等における画像の変更方法をご確認下さい。




  3. アプリケーション開発の準備で作成したテストアカウントでログイン
  4. ログインが成功すると起動ポップアップが消えアラートでテストアカウントのニックネームが表示されます



 
以上で Mobage Native SDK を使用して Mobage にログインする事が出来るようになりました。

更新履歴

  • 2017/04/05
    • ログアウト時の挙動について追記
  • 2013/12/25
    • ログインダイアログおよびスプラッシュスクリーンの画像を変更できるようになったのに伴い、リンク追加
    • Native SDK 1.4.6 より、AppDelegate.m を AppDelegate.mm にする必要が無くなったので修正
  • 2013/12/04
    • 初版作成

PREVIOUS

Xcode project に SDK を組み込む

NEXT

3章 OAuth 認証を行う