php - 如何使用 PHP (web) 检索设备注册 ID 以避免 MismatchSenderId?
问题描述
这是我在 phonegap 上的应用程序上获取注册 ID 的代码。注册ID总是成功获取的。
const push = PushNotification.init({
android: {
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
alert: "true",
badge: "true",
sound: "true"
},
windows: {}
});
push.on('registration', function ( data ) {
recordRegistrationID( data.registrationId ); //Pseudo
});
push.on('notification', function ( data ) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on('error', (e) => {
// e.message
});
然后,我尝试通过将其卷曲到 Firebase Cloud Messaging API,使用存储的注册 ID 从我的 PHP 服务器(example.com)向该设备发送推送通知,它始终返回 MismatchSenderId。
{"multicast_id":6660509895358893455,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
我已经尝试编译 .APK 并在我的移动设备上运行它。我总是成功获得令牌,但消息永远无法发送到 PhoneGap 应用程序检索到的注册 ID。
做更多的研究,似乎是因为PhoneGap实际上检索了注册ID,但它与PhoneGap本身作为发件人相关联,因此其他发件人将无法工作。
我是否正确假设这一点?如果是这种情况,如何使用 PHP 而不是 PhoneGap 获取 Firebase Cloud Messaging 的注册 ID?
谢谢你。
解决方案
做更多的研究,似乎是因为PhoneGap实际上检索了注册ID,但它与PhoneGap本身作为发件人相关联,因此其他发件人将无法工作。
这似乎是一种奇怪的行为。生成的令牌与应用实例和Firebase 项目相关联。你能提供提到这个的链接吗?将关联的令牌更改为不同的发件人根本没有意义。
话虽如此,目前无法从您的后端获取注册令牌。正如我上面提到的,令牌与应用程序实例相关联,因此它只能在客户端应用程序端生成。
推荐阅读
- laravel - 无法使用 3 个可能的身份验证器在用户名“faiezahmed844@gmail.com”的 SMTP 服务器上进行身份验证
- ios - 使用 Swift 呈现新的 Viewcontroller 后如何关闭以前的 Viewcontroller?
- python - 如何解决不可散列的类型:numpy ndarray
- javascript - 用于 XMLHttpRequest POST Javascript 的 net::ERR_EMPTY_RESPONSE
- laravel - 如何在注册验证器中为两个不同的表创建唯一列
- javascript - Cardinal.continue 在 IE 11 中不起作用?
- javascript - Reactjs:按下按钮随机化一个数组
- java - Spring Boot RestController 测试返回 404
- python-3.x - 如何从 xxx.log 文件中读取所有 IP 地址并打印它们的计数?
- oozie - OOZIE 卡在 RUNING 状态