解析云功能失败

时间:2015-12-02 12:42:06

标签: android parse-platform

我试图通过云代码删除文件。 但是这个脚本失败了:

    Parse.Cloud.define("deleteFile1", function(request, response) {
  Parse.Cloud.httpRequest({
       method: 'DELETE',
       url: 'https://api.parse.com/1/files/****.png',
       headers: {
        "X-Parse-Application-Id": "*******",
        "X-Parse-REST-API-Key" : "*******"
       },
       success: function(httpResponse) {
            console.log('Delete succeeded  ' + httpResponse.text);
        response.success();
       },
       error: function(httpResponse) {
                response.error("failed");
       }
       });
});

错误141,脚本失败。

我称之为:

Map<String, String> map = new HashMap<String, String>();
    ParseCloud.callFunctionInBackground("deleteFile1", map, new FunctionCallback<Object>() {
        @Override
        public void done(Object object, ParseException e) {
            if(e == null){

            }else{
                System.out.println(e.getCode());
                utils.toast_error("Couldn't delete image.. try again");
            }

        }
    });

我已经检查了我的密钥并且它们是正确的。所以脚本本身在某种程度上是错误的。我想也许是网址。 / files假设是图像文件绑定的ParseFile吗?我试过改变&#34;请求&#34; &安培; &#34;响应&#34;到httpResponse等。但没有区别。

1 个答案:

答案 0 :(得分:1)

更新的代码现在至少可以正常运行,您可以捕获错误。

您可以返回实际消息,方法是修改错误处理程序以返回httpResponse.text

    error: function(httpResponse) {
        response.error("failed " + httpResponse.text);
    }

最初,我使用错误的X-Parse-REST-API-Key并收到以下错误:

{
    "code": 141,
    "error": "failed {\"error\":\"unauthorized\"}\n"
}

确保使用 MASTER 键:X-Parse-Master-Key。这修复了我身边的代码,运行正常。

原始代码失败,因为您在回复完成后没有致电success()

以下是调用/deleteFile1时收到的JSON响应;它表明这是问题所在:

{
    code: 141
    error: "success/error was not called"
}

如果查看Parse Cloud Code docs,您会看到每种方法都使用response(或代码中的httpResponse)参数,并在有response.success()时调用$row["password"]==$password完成。

始终阅读Parse发回给您的回复 - 这可能有助于了解错误。

找到相关帖子的答案提示同样的事情: