SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ゲームエンジン「ngCore」最速チュートリアル(AD)

サーバーサイドのロジックもJavaScriptで!
~ngCoreを使ってMobageのソーシャル機能を実装

ゲームエンジン「ngCore」最速チュートリアル 第4回

  • このエントリーをはてなブックマークに追加

RESTful APIを使ってユーザー情報を表示してみよう

 クライアントAPIで実装したユーザー情報の表示と同じ処理を、Game ServerからRESTful APIを呼び出す形で実装する方法を紹介します。今回は、開発時のアプリケーション配布の用途だけでなく、アプリケーションサーバーとしてもNode.jsを利用して、JavaScriptでGame Serverのロジックを実装してみようと思います。

OAuthを使ったRESTful APIの認証

 Mobageのスマートフォンアプリ版で提供されているRESTful APIにアクセスするためには、3-legged OAuth(注3)に準拠した認証フローを実装する必要があります。

注3

 RFC5849に準拠。

 今までのフィーチャーフォンやブラウザ版とは違いgadgetサーバーによるクライアント認証が存在しないため、クライアントアプリケーション、Game Server、Mobageプラットフォームの3者間でデータをやり取りしながらの認証を行うアーキテクチャを採用しています。ここでは、簡単に今回実装する認証フローを説明します(図6)。

図6:スマートフォンアプリ版の3-legged OAuthの認証フロー
図6:スマートフォンアプリ版の3-legged OAuthの認証フロー
  1. RequestTokenを取得してクライアントに返す
  2. クライアント側で認可処理を行い、得られた検証コードをGame Serverに送信する
  3. クライアントから渡された検証コードを使ってAccessTokenを取得する
  4. AccessTokenを使用してPeople APIを呼び出す

RESTful API用のConsumer KeyとSecretの発行

 RESTful APIにアクセスするためには、クライアントAPI用とは別に、サーバー用のConsumer KeyとConsumerSecretのペアをもう一つ作成する必要があります。

 Mobage GlobalのDeveloper Portalで先ほど作成したアプリケーションの詳細画面を開き、「New Client Application」をクリックして、Consumer KeyとSecretを作成しましょう(図7)。

図7:RESTful API用のConsumer KeyとConsumer Secretの作成画面
図7:RESTful API用のConsumer KeyとConsumer Secretの作成画面

 この時に、「Server」チェックボックスにチェックを入れて作成してください。

Node.jsのモジュールのインストール

 Node.jsからAPIサーバーへリクエストする際には、OAuth 1.0の署名を生成・付与する必要があるので、今回はnode-oauthというライブラリを使用することにします。

 また、Node.js用のWebアプリケーションフレームワークとして人気のあるexpressも使用したいと思います。

 Node.jsのモジュールのインストールにはnpmコマンドが便利なので、まずはLIST5のコマンドでnpmをインストールしてください。

LIST5:npmのインストール
$ sudo curl http://npmjs.org/install.sh | sudo sh

 次に適当な作業ディレクトリーに移動し、npmコマンドを使用して「oauth」と「express」をインストールします(LIST6)。ついでに、Game Serverの実装をするGameServer.jsも作成しておきましょう。

LIST6:expressとoauthのインストール
$ npm install oauth
oauth@0.9.5 ./node_modules/oauth
$ npm install express
express@2.4.4 ./node_modules/express
├── mime@1.2.2
├── qs@0.3.1
└── connect@1.6.2
$ touch GameServer.js
$ ls
GameServer.js node_modules

次のページ
Game Serverを実装する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ゲームエンジン「ngCore」最速チュートリアル連載記事一覧

もっと読む

この記事の著者

水島 壮太(株式会社ディー・エヌ・エー)(ミズシマ ソウタ(カブシキガイシャディー・エヌ・エー))

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6326 2012/04/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング