Como configurar as notificações Push no servidor de processamento?
implantei um servidor de processamento em Heroku e mongoDb usando um fork modificado do servidor de processamento-exemplo no GitHub. Eu olhei para o wiki aqui sobre como enviar notificações push no servidor parse: https://github.com/ParsePlatform/parse-server/wiki/Push mas estou à procura de uma resposta mais aprofundada. O meu código CLOUD (cloud/main.js) para enviar uma notificação de push agendada (que funcionou correctamente na versão apresentada do Parse) é
Parse.Cloud.define('sendPush', function(request, response) {
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo('username', request.params.targetUsername);
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.matchesQuery('user', userQuery);
Parse.Push.send({
where: pushQuery,
data: {
alert: 'You have a new message from ' + request.params.fromUsername + '!'
},
push_time: request.params.date
}, {
success: function() {
// Push was successful
response.success('push successful')
},
error: function(error) {
// Handle error
response.error('push failed')
}
});
});
Estou a trabalhar. estritamente com iOS e eu estou olhando para ter esta função de código novamente no meu servidor de processamento. O Guia wiki diz que eu preciso configurar o servidor Parse, que eu não tenho certeza de como fazer ou onde fazê-lo. Qualquer ajuda é apreciada. Obrigado.
4 answers
Do servidor de processamento wiki:
var server = new ParseServer({
databaseURI: '...',
cloud: '...',
appId: '...',
masterKey: '...',
push: {
android: {
senderId: '...',
apiKey: '...'
},
ios: {
pfx: '/file/path/to/XXX.p12',
bundleId: '',
production: false
}
}
});
Então, pões tudo lá dentro, dentro do teu prato principal.js.
Você também pode encontrar um guia realmente abrangente para configurar as notificações push no servidor parse aqui:
Https://guides.codepath.com/android/Configuring-a-Parse-Server
É fácil você só precisa colocar as suas chaves de notificação de push na configuração parse. No teu índice.o ficheiro js apenas adiciona o objecto push à inicialização do ParseServer como esta:
var server = new ParseServer({
push: {
android: {
senderId: 'your send id',
apiKey: 'your app key'
},
ios: {
pfx: 'path to pfx local',
bundleId: '',
production: false
}
},
databaseURI: 'your database uri',
appId: 'your app key',
masterKey: 'master key',
});
Depende de como começar o seu parse-server
. Se o iniciar directamente na linha de comandos, pode fazer:
parse-server myConfig.json
Toda a configuração do servidor vai para este myConfig.JSON file, para push e para outros aspectos do seu servidor. Aqui está um exemplo de conteúdo de myConfig.json
{
"appId": "APP-ID",
"masterKey": "MMASTER-KEY",
"cloud": "relative-path-to-directory-that-contains/main.js",
"push": {
"ios":{
"pfx": "relative-path-to-apple-push-cert.p12",
"bundleId": "com.company.appname",
"production": false
},
"android":{
"senderId": "your-gcm-sender-id",
"apiKey": "your-api-key"
}
}
}
Se você iniciar o seu servidor de processamento a partir de um script expresso ou de um qualquer nó, a resposta é semelhante à que outros disseram, excepto que os caminhos têm de ser caminhos absolutos:
var server = ParseServer({
"appId": "APP-ID",
"masterKey": "MMASTER-KEY",
"cloud": "absolute-path-to-directory-that-contains/main.js",
"push": {
"ios":{
"pfx": "absolute-path-to-apple-push-cert.p12",
"bundleId": "com.company.appname",
"production": false
},
"android":{
"senderId": "your-gcm-sender-id",
"apiKey": "your-api-key"
}
}
})
Já se passaram 3 meses desde você fez essa pergunta, então provavelmente já superou a confusão inicial de configurar um parse-server
. Se você ainda tem perguntas, pode ajudar a passar pelo exercício de configurar parse-server
em sua máquina local para que você saiba exatamente onde está e o que é o quê.
Aqui está um guia para configurar o servidor parse para o Desenvolvimento local .
Tem de configurar o seu servidor de processamento com a chave necessária para enviar a notificação
Visita https://github.com/ParsePlatform/parse-server/wiki/Push para aprender a conseguir isso.