Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

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

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

著者プロフィール

バックナンバー

連載:ゲームエンジン「ngCore」最速チュートリアル
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5