使用parse-server和Heroku Scheduler的后台作业

Sla*_*hor 3 javascript android heroku node.js parse-platform

在我的Android应用程序中使用parse-server和heroku.想要创建后台工作,就像之前Parse.com提供的工作一样,但似乎无法使其工作.在parser-server-example文件夹中,我添加了一个包含以下内容的jobs.js文件:

var Parse = require('parse/node');
Parse.initialize('my_app_id');
Parse.serverURL = 'https://random-name.herokuapp.com/parse';

function saveSomething(){
var obj = new Parse.Object('my_class', 'random');
obj.save(null, {
    success: function(place){
        console.log("Success!!");
    },
    error: function(place, error){
        console.log("Fail: " + error.message);
    }
});
}

function sayHello() {
console.log('Hello');
}

sayHello();
saveSomething();
Run Code Online (Sandbox Code Playgroud)

sayHello()运行正常,但是当我运行时,saveSomething()会收到"error:unauthorized"消息:heroku run node jobs.js.所以我有2个问题.

1.这是使用parse-server和heroku创建后台作业的正确方法吗?

2."jobs.js"代码有什么问题/一般应该做些什么来完成后台工作任务?

(尝试将javascript-key添加到Parse.initialize('app-id','javascript-key');没有任何运气)

Sla*_*hor 6

解决方案是添加"Parse.Cloud.useMasterKey();" 在"Parse.serverURL =' https: //random-name.herokuapp.com/parse '之后,在"Parse.initialize('my_app_id','js-key','master-)中添加应用主密钥键'); 获得正确的授权.

var Parse = require('parse/node');
Parse.initialize('app-id', 'js-key','master-key');
Parse.serverURL = 'https://random-name.herokuapp.com/parse/';
Parse.Cloud.useMasterKey();

function saveSomething(){
var MyClass = Parse.Object.extend("MyClass");
var myclass = new MyClass();
myclass.set("columnName", "value");
myclass.save({
    success: function(place){
        console.log("Success!!");
    },
    error: function(place, error){
        console.log("Fail: " + error.message);
    }
});
}

saveSomething();
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.