2016-06-26 15 views
0

Ich versuche, eine vorhandene App zur Verwendung von FCM zu migrieren. Ich nahm die APNS Token und schickte es an den „Batchimport“ Service, Locke mit:Verwenden des FCM-Tokens, das über BatchImport (iOS) abgerufen wurde

curl -H "Authorization: key=<auth key>" -H "Content-Type: application/json" -X POST -d "{\"application\": \"com.myco.myapp\", \"sandbox\": false, \"apns_tokens\": [\"410564ffd0aaf91dd06e8ab7b8362238e2c7f1bbd5a520d6afaff38c9b670a90\"] }" https://iid.googleapis.com/iid/v1:batchImport 

ich ein „registration_token“ als Antwort erhalten. Wenn ich dann versuche, dieses Token zu verwenden, um eine Push-Benachrichtigung anzufordern, kommt es nicht auf dem Gerät an. Hier ist die Locke aus, dass:

curl -H "Authorization: key=<Auth key>" -H "Content-Type: application/json" -d "{\"to\":\"<registration_token_from_above>\", \"notification\":{\"body\":\"First\", \"title\":\"Num 1\"}}" -X POST https://fcm.googleapis.com/fcm/send 

Ich bin auch nicht in der Lage von dem „Benachrichtigung“ Werkzeug in der Konsole Firebase zu senden.

Ich erstellte ein zweites Projekt von Grund auf aus dem Beispiel hier: https://github.com/firebase/quickstart-ios.git. Dieser funktioniert sowohl von der Firebase Konsole als auch von der Curl.

Gibt es im Firebase-Clientcode etwas Magisches, das nicht passiert, wenn ich den BatchImport-Dienst verwende? Wenn ja, wie in der Welt würden Sie von einem anderen Dienst zu FCM wechseln?

+0

Vom Stapelimport generierte Token sollten wie alle anderen Token funktionieren, wenn Sie curl verwenden, um von batchImport zum Token zu senden, was ist die Antwort, die Sie erhalten? –

+0

Hier war die Antwort '{ "Ergebnisse": [{ "registration_token": "cpy8GQmQSFE: APA91bFcOVrbT88MUEhWCTs5E9 ", "apns_token": "410564ffd0aaf91dd06e8ab7b8362238e2c7f1bbd5a520d6afaff38c9b670a90", "Status": "OK"}]}' – HammondSuisse

+0

Es bedeutete, dass ich die Antwort, die Sie get, wenn Sie das registration_token verwenden, um eine Downstream-Nachricht an das Gerät zu senden. –

Antwort

1

Fügen Sie "priority": "high" in Ihrem Downstream-Curl-Befehl hinzu; Bitte beachten Sie auch, dass "title" auf iOS-Geräten nicht unterstützt wird.

+0

Das war genau das Problem. Bei der Priorität: hoch hat das angefangen zu arbeiten. Glaubt sonst jemand, dass dies der Standard sein sollte ??? In der iOS-Welt lautet die entsprechende Prioritätseinstellung standardmäßig "Hoch" (10): [link] (https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwitAPNs.html) – HammondSuisse

0

Wie funktioniert es?

dies auf der Firebase docs gefunden: einen App-Server in Ihrer Umgebung

Ein FCM Implementierung beinhaltet, dass mit FCM interagiert über HTTP oder XMPP-Protokoll, und eine Client-Anwendung. Zusätzlich enthält FCM die Notifications Konsole, mit der Sie Benachrichtigungen an Client-Apps senden können.

Firebase Notifications basiert auf Firebase Cloud Messaging und teilt das gleiche FCM SDK für die Client-Entwicklung. Zum Testen oder Senden von Marketing- oder Interaktionsnachrichten mit leistungsstarkem integrierten Targeting und Analytics können Sie Benachrichtigungen verwenden. Für Bereitstellungen mit mehr komplexen Nachrichtenanforderungen ist FCM die richtige Wahl.

Wie in der Welt würden Sie von einem anderen Dienst zu FCM migrieren?

Es gibt eine vollständige Migration Guide for iOS in der Dokumentation.

Importieren Sie Ihre GCM Projekt als Projekt Firebase

1.In der Konsole Firebase, wählen Sie Import Google-Projekt.

2.Wählen Sie Ihr GCM-Projekt aus der Liste der vorhandenen Projekte und wählen Sie Firebase hinzufügen.

3.Wählen Sie im Firebase-Begrüßungsbildschirm Firebase hinzufügen zu Ihrer iOS App.

4.Senden Sie Ihren Bundle-Namen und die optionale App Store-ID an und wählen Sie App hinzufügen. Eine neue GoogleServices-info.plist-Datei für Ihre Firebase-App wird heruntergeladen.

5.Wählen Sie "Weiter" und folgen Sie den detaillierten Anweisungen zum Erstellen einer xcworkspace-Datei für Ihre App und zum Herstellen einer Verbindung mit Firebase beim Start.

+0

Danke, aber meine Frage zur Migration betrifft die Handhabung von Token. Ich benutze 'curl', um die Rolle des Servers zu simulieren, bevor ich einen echten Server erstelle. Also, wenn ich eine existierende App habe, die ihre APNS-Token in unserer On-Prem-Datenbank für unsere bestehende Lösung registriert hat, sieht es so aus, als ob ich den batchImport-Serviceaufruf verwenden sollte, um diese in Registrierungstoken zu übersetzen. Beim Testen sehe ich jedoch nicht, dass diese Token zum Senden von Benachrichtigungen verwendet werden. Also, ist es in gewisser Weise zwingend erforderlich, auch die Client-API auf dem Client ** und ** batchImport vom Server zu verwenden? – HammondSuisse

+0

Ich bin nicht ganz mit Ihrem Verfahren vertraut. Aber Sie können [GCM iOS] (https://developers.google.com/cloud-messaging/ios/client) immer einen Blick darauf werfen, die Handhabung von Registrierungstoken wird im Detail erwähnt :) – noogui

0

Ein weiteres mögliches Problem beim Senden von Benachrichtigungen mit Token, die mit batchImport erstellt wurden: Achten Sie darauf, den Parameter sandbox richtig zu setzen. Meine Benachrichtigungen wurden mit allen möglichen seltsamen Fehlern zurückgewiesen - ungültiges Token, Token nicht registriert, ungültige APNS-Anmeldeinformationen -, bis ich sandbox: true festlegte.