Enviar a notificação da aplicação usando o processamento

estou a usar o parse 1, 13, 0 in nodechef.com eu tentei configurar meu app para enviar notificação, mas eu tenho alguns problemas.

Este é o meu manifesto.
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.path" >
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.my.path.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.my.path.permission.C2D_MESSAGE" />

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:fullBackupContent="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/hsfTheme">

    <meta-data
        android:name="com.parse.APPLICATION_ID"
        android:value="@string/parse_app_id" />
    <meta-data
        android:name="com.parse.CLIENT_KEY"
        android:value="@string/parse_client_key" />

    <meta-data
        android:name="com.parse.push.notification_icon"
        android:resource="@drawable/logo" />

    <service android:name="com.parse.PushService" />

    <receiver android:name="com.parse.ParseBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.my.path" />
        </intent-filter>
    </receiver>

    <!-- activity main. -->
    <activity
        android:name=".A0"
        android:configChanges="keyboardHidden|screenLayout|orientation"
        android:immersive="true"
        android:screenOrientation="portrait"
        android:theme="@style/hsfTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".A1" />
    <activity android:name=".A2" />
    <activity android:name=".A3" />
    <activity android:name=".utils.A4" />

    <!-- Include the AdActivity configChanges and theme. -->
    <activity
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />
</application>

Na minha aula de candidatura, tenho: análise.getCurrentInstallation().saveInBackground ();

  • O DeviceToken está vazio na classe de _instalar
  • empurrar não trabalhar

Tudo o que eu preciso é enviar notificação push do meu aplicativo, em algumas ações que eu gostaria de notificar todos os usuários ou alguns usuários usando canais de instalação. Não importa se eu vou usar "parse push" ou gcm, apenas precisa de uma maneira simples de enviar notificações push do aplicativo.

editar O Push do parse-dashboard está a funcionar agora, mas não posso enviar a notificação do push do cliente. Tentei um empurrão e obtive "unauthorized: enable master key". O que tenho de fazer ?

Editar 2 Criei um código de nuvem, mas o seu aspecto não funciona. obtém valores a partir do pedido .Espumas:

Parse.Cloud.define("sendPush", function(request,response) {
var _locale = "en-US";//request.params.locale;
var _message = "test";//request.params.message;
var query = new Parse.Query(Parse.Installation);
query.equalTo("localeIdentifier", _locale);
Parse.Push.send({
        data:   {
            alert: _message,
        badge: "Increment",
            sound: "default"
        },
        where: query
    }, {
      useMasterKey: true
    })
    .then(function() {
      response.success("Push Sent!");
    }, function(error) {
      response.error("Error while trying to send push " + error.message);
    });
});

editar 3

HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en-US");
map.put("message","Text added");

ParseCloud.callFunctionInBackground("sendPush",map, new FunctionCallback<Object>() {

    @Override
    public void done(Object object, ParseException e) {
        // toast done
    }
});
Author: Rodrigo Celebrone, 2016-08-02

1 answers

Depois de investigar um pouco, reparei que, para enviar o push, tem de criar uma função de código na nuvem e usar a sua chave-mestra (enviando o parâmetro userMasterKey=true para a função Enviar o push. Eu descrevo a minha resposta em aqui por isso, por favor, siga os passos e deve funcionar para si.

 1
Author: Ran Hassid, 2017-05-23 12:32:55