2013年4月11日木曜日

ソーシャルプラットフォームPankiaの導入

ソーシャルプラットフォームPankia

株式会社パンカクが提供するソーシャルプラットフォームPankiaを入れてみたので簡単にまとめておきます。

ソーシャルプラットフォーム?

ソーシャルプラットフォームを一言で言うと「スマホゲームにネットランキング機能をつけるためのもの」でしょうか。他にもいろんな機能があることは知っていますが自分も初心者なので最初に使いたい機能を代表として取り上げました。語弊のある言い方ですいません。
有名どころだとScoreloopやグリーに買収されたOpenFeintなどがありますね。今回紹介するPankiaもそうです。最初に目についたのでとりあえず使ってみようと思います。

まずはネットランキングを搭載することを目標にしていきます。

ではさっそく

Pankiaの導入

Pankia Developersへの登録

PankiaのHPから新規登録画面へ
・全部記入して登録
登録画面
・メールが送られてくるのでリンクをクリックすると認証完了


PankiaSDKのダウンロード

・再度Pankiaへ行き、ログイン
管理者用画面
この画面が開発者の管理画面ですね。
・画面右Downloadsから「Pankia SDK for Android」をダウンロード
最新はver4.0.3でした。
SDKのダウンロード
・ファイルは解凍して好きな場所に保管します。
あとでEclipseのワークスペースにコピーされるので他の場所がいいでしょう。

ここから少しややこしくなってきます。
本家サイトにとても詳しく書いてありますのでしっかり読みましょう。
このブログはメモなので自分がやったことだけをまとめておきます。


Pankiaへゲームの登録

Pankia管理画面にて「Add a new game」を押す。
・ゲーム追加画面が表示され、以下のように入力しました。
ゲームの登録画面1
ゲームの登録画面2
・追加したゲームの管理画面が表示されるので「Game Key」と「Game Secret」をメモ。
Game KeyとGame Secretを取得

EclipseへPankiaライブラリを追加

・Eclipseメニューの[ファイル] → [インポート] → [一般] → [既存プロジェクトをワークスペースへ]を選択
ライブラリ追加手順1
ライブラリ追加手順2
ライブラリ追加手順3
書き忘れましたが手順3の画像のところで「プロジェクトをワークスペースにコピー」のチェックを入れておきましょう。

テスト用アプリケーションの作成

EclipseにてHelloWorldプロジェクトを作ります。これはいろんなところで紹介されてるので割愛。
プロジェクト名は「testPankia」としました。
テスト用アプリケーションの作成

動きました。
・Pankiaを動かしてみたいだけなので、起動したらPankiaの画面が呼び出されるだけのアプリにしてみましょう。
ボタン作ってクリックしたら~とか難しいのでやらないです。


アプリケーションからPankiaへの参照を追加

・Eclipseにて対象アプリケーション右クリック → [プロパティ] → [Android] → [Library] → [Add]を選択
・Pankiaライブラリを選択して[OK]を押す
・プロパティを[OK]を押して閉じる
参照追加1
参照追加2
参照追加3

アプリケーションの修正

・AndroidManifest.xmlのActivityに下記を追加する
<activity
    android:name="com.pankia.ui.DashboardActivity"
    android:configChanges="orientation|keyboardHidden"
    android:screenOrientation="landscape"
    android:theme="@style/Theme.PN.Dashboard" />
<activity
    android:name="com.pankia.ui.UpdateDashboardActivity"
    android:configChanges="orientation|keyboardHidden"
    android:theme="@style/Theme.PN.Main" />
<activity
    android:name="com.pankia.api.manager.IntentManager$IntentManagerActivity"
    android:screenOrientation="landscape"
    android:theme="@style/Theme.PN.Main" />
<activity android:name="com.pankia.api.util.UserKeyUtil$FindUserKeyActivity" />
<activity android:name="com.pankia.api.util.UserKeyUtil$ReturnUserKeyActivity" >
    <intent-filter>
        <action android:name="com.pankia.intent.action.GET_USER_KEY" />
    </intent-filter>
</activity>
<activity
    android:name="com.pankia.SplashActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
    </intent-filter>
</activity>

<receiver android:name="com.pankia.api.manager.SplashBroadcastReceiver" />

追加する場所はもともとあるActivityの後ろ。
Activityの追加

・AndroidManifest.xmlのPermissionに下記を追加する
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />

追加場所はApplicationタグの前
Permissionの追加

・PListの追加
オフラインでPankiaの機能を使うために必要らしいです。
Pankia管理画面からゲーム管理画面に行き、「Export data to plist」でファイルをダウンロード。
Eclipseのゲームプロジェクト以下assetsフォルダにコピー
PListの追加1
PListの追加2

・SQLCipherライブラリの追加
データ改ざん対策として必要らしい
最初に解凍したPankiaプロジェクトファイルの[icudt46l.zip]ファイルをPListと同じ場所にコピーする
SQLCipherの追加

・ProGuardによる難読化の設定
proguard.cfgが見つからない・・・
APKにしない限り影響なさそうだしとりあえずパス。あとで調べよう。
見つけました。ここにも書きましたがADT17から仕様が変わったようです。
project.propertiesファイルにある下記行の#を消す(proguard有効化)
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

proguard-project.txtに下記を追記
-keep public class com.pankia.** {
 <fields>;
 <methods>;
}

proguardの有効化(project.properties)
proguardの設定(proguard-project)

・MainActivityの変更
MainActivityが立ちあがったときにPankiaのダッシュボードを開くように修正する。
MainActivityを下記のように修正する。Key,SecretはPankiaの管理画面からコピー。
package com.example.testpankia;

import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import com.pankia.Config;
import com.pankia.Pankia;
import com.pankia.PankiaActivity;
import com.pankia.PankiaError;
import com.pankia.User;

public class MainActivity extends PankiaActivity
{

 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  Pankia.launchDashboard(this);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu)
 {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

 @Override
 protected Config getGameConfig()
 {
  Config config = new Config(this, "YOUR_GAME_KEY_HERE", // gameKey,
   "YOUR_GAME_SECRET_HERE", // gameSecret,
   "YOUR_GAME_TITLE_HERE", // gameTitle,
   null); // Dashboard Custom Background Image
  config.setIMEILoginDisabled(true);
  return config;
 }

 @Override
 protected void onUserDidLogin(User user)
 {
  // TODO Auto-generated method stub
  super.onUserDidLogin(user);
 }

 @Override
 protected void onUserDidFailToLogin(PankiaError error)
 {
  // TODO Auto-generated method stub
  super.onUserDidFailToLogin(error);

  Log.i("Activity", "Logging in failed. Reason:" + error.message);
 }
}

実行

動きました。
ダッシュボードも正しく表示されました。
規約に同意して送信を押すといとも簡単に登録完了。
ダッシュボードが表示されました。

まとめ

とりあえずここまで。
今回は初めて&全て調べながら&記事書きながらやったので3時間ぐらいかかりました。
PankiaDeveloperとEclipseへのプロジェクト追加は一度きりなので
アプリへ追加するだけであれば慣れれば10分ぐらいでしょうか。
こんな簡単にできるの?っていうのが正直な感想でした。
次はハイスコアを登録できるようにしてみます。

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...