Uploaded image on parse.com gives 403 error

254 views Asked by At

I am trying to upload image to parse.com using REST API, and associating to an object as shown in docs

I am getting the fileUrl from phonegap / appgyver-supersonic camera api.

The Image is uploaded successfully and also associated successfully to the "receipt" object but accessing the url gives 403 error. How do I access the URL and view the uploaded image, I get a white page (with broken image icon) and 403 error.

File : http://files.parsetfss.com/68087456-8a5a-403a-820f-13912d2c0911/tfss-5d0edbdb-730b-4cd6-a44f-f0ce1e2ab120-pic.jpg

My receipt class has public write/read access.

Here is my code :

     $scope.send = function(fileURL, mimeType){
      function win(r) {
        $scope.textvar = r;
        var response = JSON.parse(r.response);
          console.log("Code = " + r.responseCode);
          console.log("Response = " + r.response);
          console.log("Sent = " + r.bytesSent);

          var req = {
           method: 'POST',
           url: 'https://api.parse.com/1/classes/receipt',
           headers: {
              'X-Parse-Application-Id':'XXXXXXXXXXXXX', 
            'X-Parse-REST-API-Key':'XXXXXXXXXXXXXXXX',
            "Content-Type": "application/json"
           },
           data: {"name": "user_receipts", 
                    "images": {
                      "name": response.name,
                      "__type" : "File"
                      }          

                  }
          }

            $http(req).success(function(data, status, headers, config) {
              // this callback will be called asynchronously
              // when the response is available                  
              console.log("image association success ");
              console.log(data);
              console.log(headers);
              console.log(status);
              console.log(config);
            }).
            error(function(data, status, headers, config) {
              // called asynchronously if an error occurs
              // or server returns response with an error status.
            });

      }

      function fail(error) {
          console.log("An error has occurred: Code = " + error.code);
          console.log("upload error source " + error.source);
          console.log("upload error target " + error.target);
          console.log("upload error http-code " + error.http_status);
      }

      var uri = encodeURI("https://api.parse.com/1/files/pic.jpg");

      var options = new FileUploadOptions();
      options.fileKey="data-binary";
      options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
      options.mimeType=mimeType;

      var headers = {"X-Parse-Application-Id": "XXXXXXXXXXXXXXXXX",
                      "X-Parse-REST-API-Key":"XXXXXXXXXXXXXXXX",
                      "Content-Type":"image/jpeg"};
      options.headers = headers;

      var ft = new FileTransfer();
      ft.onprogress = function(progressEvent) {
          if (progressEvent.lengthComputable) {


            console.log("length : "+progressEvent.loaded/progressEvent.total);
          } else {
            console.log("loaded : "+progressEvent.loaded);
          }
      };
      ft.upload(fileURL, uri, win, fail, options);
};

I have wasted 5 days on this already, Please Help. I am no expert in either appgyver / phonegap or parse.com

0

There are 0 answers