ひとりKii Cloud Advent Calendar 2014-12-6

More than 3 years have passed since last update.

この記事は、ひとりKii Cloud Advent Calendarの6日目の記事です。


6日目「ユーザー登録を実装してみる」

KiiLib-Android-Volleyのドキュメント整備がいまひとつなので、ユーザー登録の実装からやってみることにする.

ちょっと時間とれないので、サンプルアプリを先にどうぞ。


Volleyの準備

公式のガイドに従ってApplicationクラスにVolleyのRequestQueueを持たせる。

public class MyApplication extends Application {

// onCreate()で作ると、Notificationなどで起動したときも
// RequestQueueができるので、必要になったときに生成
private RequestQueue mQueue;

public synchronized RequestQueue getQueue() {
if (mQueue == null) {
mQueue = Volley.newRequestQueue(this);
}
return mQueue;
}
}

AndroidManifest.xmlで設定するのをお忘れなく。

<application

android:name=".MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


App ID / App Keyを取得する

3日目で作ったKii CloudアプリのApp ID / App Keyを取得する。

まず、developer consoleでアプリを選ぶ。

スクリーンショット 2014-12-06 9.50.08.png

アプリを選んだら、右上の歯車をクリック。

スクリーンショット 2014-12-06 7.36.50.png

クリックすると、アイコンがいくつか出てくるので、真ん中の鍵のアイコンをクリック。

スクリーンショット 2014-12-06 7.37.00.png

ここで表示されるApp ID / App Keyを控えておく。

スクリーンショット 2014-12-06 9.53.19.png


APIオブジェクトを作る

FragmentのonCreate()あたりでAPIオブジェクトを作る。と、これ書いてて気付いたけどApplicationクラスに持たせてもよさそう。

BASE_URLはサーバーのURLを指定。ライブラリ側に定数で持たせてなくてごめんなさいなので次を指定してください。

@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

MyApplication context = (MyApplication) getActivity().getApplicationContext();
mKiiAPI = new KiiVolleyAPI(context.getQueue(), Constants.APP_ID, Constants.APP_KEY, Constants.BASE_URL);
}


ボタンが押されたらユーザー登録APIを呼ぶ

ユーザー登録に最低限必要な情報をJSONObjectにセットして、KiiVolleyAPI#signup()を呼ぶだけ。このへんやや不親切なのでそのうち変更するかも。

@OnClick(R.id.button_signup)

void signupClicked(View v) {
String username = mUsernameEdit.getText().toString();
String password = mPasswordEdit.getText().toString();

JSONObject info = new JSONObject();
try {
// ユーザー名+パスワードの場合は、loginNameフィールドをセット
// メールアドレス+パスワードの場合は、emailAddressフィールドにセット
info.put("loginName", username);
} catch (JSONException e) {
// nop
}

mKiiAPI.signup(info, password, new AppAPI.SignupCallback<KiiUser>() {
@Override
public void onSuccess(KiiUser kiiUser) {
Toast.makeText(getActivity(), R.string.signup_done, Toast.LENGTH_SHORT).show();
}

@Override
public void onError(Exception e) {
Toast.makeText(getActivity(), R.string.signup_failed, Toast.LENGTH_SHORT).show();
}
});
}