1

Ich habe eine Chat-App mit Titanium entwickelt und ich habe einige Probleme beim Senden von Push-Benachrichtigungen, wenn ein Benutzer eine Nachricht senden.Fehler nach dem Senden Push-Benachrichtigung an bestimmte IDs mit Cloud.PushNotifications.notify

Wenn ich rufe einfach:

Cloud.PushNotifications.notify({ 
    channel : 'myChannel', 
    to_ids : usersID.toString(), 
    payload : { 
     message : "message", 
     from : myId, 
     sound : "default", 
     alert : "New message!", 
    } 
};, function(e) { 
     if (e.success) { 
      console.log('Success'); 
     } else { 
      console.log('Error:\n' + ((e.error && e.message) || JSON.stringify(e))); 
     } 
    }); 

ich das OK vom Server erhalten

{"push_notification":{"id": "xxx", "payload": "{\"message\":\"message\",\"from\":\"xxx\",\"sound\":\"default\",\"alert\":\"New message!\"}", "channel": "myChannel"}, "success": true,"error": false, "meta":{"code": 200, "status": "ok", "method_name": "Notify"}} 

aber die Push-Benachrichtigung mit dem Status Failure auf der ArrowDB Platte markiert.

Eine andere Geschichte, wenn ich to_ids = "everyone" setze, wird der Push gesendet (solange Sie ein Admin-Benutzer sind).

Die seltsame Sache ist, dass ich den gleichen Fehler bekomme, wenn ich versuche, es aus dem ArrowDB-Panel zu senden.

Senden die Push mit spezifischer IDs Sending the push with specific IDs

Senden der Push-to-everone Sending the push to everone

Ich bin nicht sicher, was ich falsch mache, aber ich versuchte, auf den Grund zu bleiben Beispiele aus Titan.

+0

Genau dasselbe erleben. Das Serverprotokoll gibt einen erfolgreichen Push zurück, aber die Push-Protokolle melden Fehler ohne weitere Details. – kenwen

+0

Ich habe mich gerade daran erinnert, dass ich dies in einem anderen Projekt behoben habe. Ich werde später mit der Antwort aktualisieren. Es hatte etwas mit der Methode zu tun, die ich anrief. –

Antwort

1

Das Problem war, dass die Geräte keine Benutzer zugeordnet haben:

user not associated to device

Nach vielen Tests, die ich erkennen, dass ich nach dem Cloud.Users.login Verfahren zu Unrecht wurde die Methode Cloud.PushNotifications.subscribeToken anstelle die Cloud.PushNotifications.subscribe Aufruf . Ändern, dass nach dem Login und abonnieren verfügt das Gerät über einen Benutzer zugeordnet:

user associated to device

Und alles funktioniert wie erwartet, Push-Benachrichtigungen gesendet und empfangen werden.

EDIT: Ich habe nicht bemerkt, dass das Scheitern Label zeigt Ihnen den Grund schweben (etwas seltsame Art und Weise Informationen zu zeigen), und der Grund in der Tat dort war etwas erklärt:

error message

+0

Immer noch Probleme, aber ich denke, es ist im Zusammenhang mit http://StackOverflow.com/Questions/35557691/Push-Messages-For-ios-error-code-1001-Remote-Host-closed-connection-During-H/ 36053980 – kenwen

+0

Haben Sie versucht, auf der Fehlerkennzeichnung zu schweben? Ich habe das aus deinem Link herausgefunden und es wäre hilfreich gewesen, das zu wissen. –