Android からの実行
Android SDK より Server Code を実行する例を以下に挙げます。
-
// Instantiate the endpoint. KiiServerCodeEntry entry = Kii.serverCodeEntry("main"); try { // Set parameters. JSONObject rawArg = new JSONObject(); rawArg.put("username", "name_of_my_friend"); rawArg.put("password", "password_for_my_friend"); // Create a container of the parameters. KiiServerCodeEntryArgument arg = KiiServerCodeEntryArgument .newArgument(rawArg); // Execute the server code. KiiServerCodeExecResult res = entry.execute(arg); // Parse the result. JSONObject returned = res.getReturnedValue(); String newUser = returned.getString("returnedValue"); // Get the number of the executed steps. int steps = res.getExecutedSteps(); // Get the version of Node.js on which the server code was executed. KiiServerCodeEnvironmentVersion executedVersion = res.getEnvironmentVersion(); } catch (AppException e) { // Handle the error. } catch (IOException e) { // Handle the error. } catch (JSONException e) { // Handle the error. }
-
// Instantiate the endpoint. KiiServerCodeEntry entry = Kii.serverCodeEntry("main"); // Set parameters. JSONObject rawArg = new JSONObject(); try { rawArg.put("username", "name_of_my_friend2"); rawArg.put("password", "password_for_my_friend"); } catch (JSONException e) { // Handle the error. } // Create a container of the parameters. KiiServerCodeEntryArgument arg = KiiServerCodeEntryArgument .newArgument(rawArg); // Execute the server code. entry.execute(arg, new KiiServerCodeEntryCallback() { public void onExceuted(KiiServerCodeEntry entry, KiiServerCodeEntryArgument argument, KiiServerCodeExecResult res, Exception exception) { if (exception != null) { // Handle the error. return; } try { // Parse the result. JSONObject returned = res.getReturnedValue(); String newUser = returned.getString("returnedValue"); // Get the number of the executed steps. int steps = res.getExecutedSteps(); // Get the version of Node.js on which the server code was executed. KiiServerCodeEnvironmentVersion executedVersion = res.getEnvironmentVersion(); } catch (JSONException e) { // Handle the error. } } });
ここでは以下の処理が行われています。
- 実行対象エンドポイント名(関数名)を指定して
serverCodeEntry()
メソッドを実行し、KiiServerCodeEntry
インスタンスを作成。KiiServerCodeEnvironmentVersion
引数を指定して、Server Code の実行に使用する JavaScript エンジンを指定することもできます。 - 実行時パラメータ(今回の例ではユーザー名とパスワード)を JSON オブジェクトに格納し、これを指定して
newArgument()
メソッドを実行し、KiiServerCodeEntryArgument
インスタンスを作成。この際、実行時パラメータのキーを Server Code 内のキーと一致させてください(今回の例では "username" と "password")。 - 実行時パラメータを指定して
execute()
メソッドを実行し、Server Code を実行。- ユーザーがログインしている場合、Kii Cloud はこのユーザーにより Server Code が実行されたものと見なします。
- ユーザーがログインしていない場合、Kii Cloud は匿名ユーザーにより Server Code が実行されたものと見なします。
getReturnedValue()
メソッドを実行して、実行結果を取得。- (必要に応じて)
getExecutedSteps()
メソッドを実行して、実行ステップ数を取得。 - (必要に応じて)
getEnvironmentVersion()
メソッドを実行して、Node.js のバージョンを取得。
getReturnedValue()
メソッドは、戻り値の型 で例示したような、Server Code を実行した結果が "returnedValue" フィールドに格納された JSON オブジェクトを返します。実際の結果を抽出するには、適切なメソッドを実行してください。今回の例の場合は getString()
メソッドを使い、新規に作成されたユーザー名の取得を行っています。
タイムアウト時に返却する値を設定した場合、同様に getReturnedValue()
メソッドを使って値を取得します。メソッドで取得可能な JSON オブジェクトは タイムアウト をご参照ください。