如何验证在Parse.com中的deviceToken的GCM发送者ID

4
我们正在使用Parse.com发送推送通知。随着宣布的关闭,我们现在正在寻找如何迁移到另一个服务。在Android上,我们没有配置任何GCM发送者ID,因此我们一直在隐式地使用Parse.com的发送者ID。这对于迁移是个问题 (请参见针对Parse Android Push用户的紧急说明迁移现有Parse应用程序(部分导出GCM注册ID))。
因此,我们现在准备使用自己的GCM发送者ID的新版本Android应用程序。在Parse.com中有没有一种方法可以验证哪些设备(安装)与我们的发送者ID相关联?我们如何检查我们的更新是否成功?Google是否提供任何API来直接或间接地检查发送者ID是否与我们的Google项目配合工作?
任何涉及编写代码的工具或方法都可以。

你们使用的是什么服务器端语言? - Rushi Ayyappa
到目前为止,我们使用Parse.com的REST API发送推送通知(来自Java)。但是如果我们使用Parse.com的控制台(完全不使用编程语言),同样适用这个问题。 - Codo
好的,那你还是不想使用像PHP或ASP.NET这样的编程语言吗? - Rushi Ayyappa
请告诉我如何验证哪些手机与我们自己的发送者ID相关联。一旦我了解了方法,就可以轻松编写代码。 - Codo
在网上看了一些文章后,我发现他们的数据库中应该有一些选项可以知道与您自己的发送者ID相关联的用户数量。如果没有这样的选项,那么我们必须等待parse.com提供迁移工具。 - Rushi Ayyappa
而且,您不能依赖第三方GCM提供程序。始终建议自己编写代码!否则,请使用此链接:https://www.pubnub.com/blog/2015-06-24-sending-receiving-android-push-notifications-with-gcm-google-cloud-messaging/ - Rushi Ayyappa
3个回答

2
感谢您发布这个问题。我是OneSignal的助手,根据反馈更新了提到的博客文章。
现在的博客文章指导用户更新他们的ParseInstallation以设置他们的GCMSenderId,方法如下:
final ParseInstallation parseInstallation = ParseInstallation.getCurrentInstallation();
parseInstallation.put("GCMSenderId",YOUR_NEW_SENDER_ID); 
parseInstallation.saveInBackground();`

这样做可以让您跟踪已使用新的GCM Sender ID订阅的用户。它还会告诉我们的解析导入工具,像我们这样,这些订阅设备可以被导入和使用。

0

开源的Parse Server项目目前还不支持推送通知,但是它在路线图上,并且很快就会发布。

如果你想将你的Parse Push应用程序迁移到其他GCM提供商,你需要在你的Android清单文件中更新自己的GCM Sender Id。一旦应用程序部署到Google Play商店,更新为您的应用程序的最新版本的客户端也将使用您的GCM Sender Id注册。

您需要跟踪有多少活跃用户已经更新了应用程序的新版本,以更好地了解您的迁移进展情况。

Parse Installation对象自动跟踪客户端应用程序版本号。一个快速简便的方法是过滤运行新版本appVersion或更新版本的Installation对象,以确定有多少客户端已经更新了您的应用程序到新版本。

在你发布新版本到Google Play商店之前,你当然要确保已更新的应用程序已经正确地使用你的新Sender Id注册了GCM。Android Documentation on Cloud Messaging 对此进行了最佳实践的介绍。如果你的应用程序已经正确配置,你应该能够使用你的新推送通知提供商向更新后的客户端发送推送通知。


你确定吗?我的理解是,在迁移到Parse.com时(而不是从它迁移),Installation对象的GCMSenderId被使用,并且必须明确设置,而不是由Parse.com自动设置。实际上,对于我们所有的安装(根据Parse.com控制台),这个字段都是空的。 - Codo
刚刚验证了一下,你是正确的。在这种情况下,您可以从客户端显式设置您正在使用的GCMSenderId。这应该允许您跟踪已迁移到您自己的发送者ID的安装情况。如果GCMSenderId不可写,则应该能够使用Installation类上的任意字段来跟踪此信息。 - Héctor Ramos
我觉得这里存在一些误解。我不想在 Parse.com 上写任何数据。相反,我想自动检索 Parse.com 存储的数据,并验证设备是否已迁移到我们在应用程序清单中根据 Parse.com 的指示配置的自己的发送者 ID。那么我需要读取哪些数据并如何验证呢? - Codo
更新的答案提供了一种不依赖于将数据写回Parse的解决方案。您仍然需要编写一些客户端代码来验证GCM注册是否成功:https://developers.google.com/cloud-messaging/android/client - Héctor Ramos
很抱歉,但我似乎无法向您解释我正在寻找的内容。不管怎样,还是谢谢您的努力。 - Codo
显示剩余2条评论

0
您可以在我们的指南https://parse.com/docs/android/guide#push-notifications中找到有关发送和接收推送通知的信息。
具体而言,对于希望从多个推送提供程序发送推送通知的开发人员来说,Parse 是一项高级功能,允许您选择性地向附加 GCM 发送者 ID 注册您的应用以进行推送。要执行此操作,请在应用的 AndroidManifest.xml 中的 元素的子元素中使用以下 标记指定附加 GCM 发送者 ID…还有...
GCMSenderId:此字段仅适用于使用 GCM 推送类型的 Android ParseInstallations。它保留用于指导 Parse 使用备用 GCM 发送者 ID 向此安装发送推送。除非您正在从另一个推送提供程序上传安装数据,否则通常不应设置此字段。如果设置了此字段,则必须在 Parse 应用程序的推送设置中设置与此 GCM 发送者 ID 相应的 GCM API 密钥。

我已经准备好了一个新的应用程序版本,在 Android 清单中配置了发送者 ID。但是我们现在如何验证具有更新的应用程序的设备是否使用我们自己的发送者 ID 注册?我在你的回答中没有看到这一点。 - Codo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接