【发布时间】:2017-11-22 08:51:36
【问题描述】:
我正在尝试迁移现有应用以使用 FCM。我使用 curl 将 APNS 令牌发送到“batchImport”服务:
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
我收到一个“registration_token”作为回应。 然后,当我尝试使用该令牌请求推送通知时,它不会到达设备上。这是卷曲:
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
我也无法从 Firebase 控制台中的“通知”工具发送。
我从这里的示例从头开始创建了第二个项目:https://github.com/firebase/quickstart-ios.git。这个可以在 Firebase 控制台和 curl 中使用。
在我使用 batchImport 服务时,Firebase 客户端代码中是否发生了一些神奇的事情?如果是这样,您将如何从不同的服务迁移到 FCM?
【问题讨论】:
-
从批量导入生成的令牌应该像所有其他令牌一样工作,当您使用 curl 从 batchImport 发送到令牌时,您得到什么响应?
-
这是
{"results":[{"registration_token":"cpy8GQmQSFE:APA91bFcOVrbT88MUEhWCTs5E9<etc etc>","apns_token":"410564ffd0aaf91dd06e8ab7b8362238e2c7f1bbd5a520d6afaff38c9b670a90","status":"OK"}]}的回复 -
对不起,我的意思是您使用registration_token向设备发送下游消息时得到的响应。
-
向设备请求通知时全是微笑:
{"multicast_id":6605894166055572393,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1467040269913059%c6939f07c6939f07"}]} -
在这种情况下,我认为问题不在于registration_token,而是FCM将令牌映射到适当的APNs令牌(不太可能但可能)或者客户端存在问题设置为接收通知。您能否添加您的发送请求和接收问题通知的代码?
标签: ios google-cloud-messaging firebase-cloud-messaging