私は長い間 Parse の REST API を使用してきましたが、Parse のサーバーへのリクエストの量を減らすために、かなり良さそうな Cloud Code 機能の調査を開始しました。遠い。Parse のサーバー上でいくつかのビジネス ロジックを定義して実行するという事実は、非常に強力なツールのように見えます。
しかし、私は基本を立ち上げて実行することさえできていません。この入門ガイドに従いましたが、バックグラウンドで「hello」関数を呼び出そうとすると行き詰まりました。これが私がやったことです:
- jar ファイルを Android Studio プロジェクトにインポートしました
- Parse の powershell コマンド ツールをインストールする
- クラウド コード ディレクトリをローカルに作成しました。デフォルトでは、
hello
「main.js」に関数を作成します - デプロイした
- この関数を呼び出して Android アプリでテストを実行します
hello
が、応答の解析に失敗します
エラーのスタックトレースは次のとおりです。
11-26 08:28:44.499 18299-18299/com.package.appname E/Leo_Debug﹕ Error: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
com.parse.ParseException: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
com.parse.ParseException: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
at com.parse.ParseRequest.connectionFailed(ParseRequest.java:415)
at com.parse.ParseCommand.onResponse(ParseCommand.java:387)
at com.parse.ParseCommand.onResponse(ParseCommand.java:36)
at com.parse.ParseRequest$3.call(ParseRequest.java:295)
at bolts.Task$2.run(Task.java:195)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
これは私が呼び出しているクラウド コード関数です...
Parse.Cloud.define("hello", function(request, response) {
response.success("Hello world!");
});
これが、Parse SDK for Android を使用して関数を呼び出す方法です...
String clientId = ctx.getString(R.string.parse_app_id);
String clientKey = ctx.getString(R.string.parse_app_api_key);
Map<String,Object> map = new HashMap<String, Object>();
Parse.initialize(ctx, clientId, clientKey);
ParseCloud.callFunctionInBackground("hello", map, new FunctionCallback<String>() {
public void done(String o, ParseException e) {
if(e != null) {
Utils.LogError(e);
}
else{
Utils.Log("ParseCloud.hello: " + o);
}
}
});
このctx
変数は「Context」クラスのインスタンスであり、Utils
これはデバッグをオンにして使用情報を LogCat に出力するときに使用した単なるヘルパー クラスです。
古いフォーラム サイトでも専用の Google グループでも、多くの情報を見つけることができませんでした。誰かがこの問題に遭遇した場合、助けをいただければ幸いです