2

我无法使用 C2DM 服务测试推送通知。

在“3.4。注册您的应用程序”之前,我一直在使用Lars 的示例来设置我的 android 测试项目。我成功地从设备获取了注册 ID。

然后我使用以下 curl 通过我的服务器成功获取了 Auth 令牌:

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm

所以现在我有两个主要的组件要推动。所以为了测试的目的,我发出另一个 curl 来发送消息(我将实现 auth 令牌生成,并在我得到它的功能后在 php 中发送消息)。

我用:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=HelloPush" -d collapse_key=something -k

回复:

错误=未注册

这就是我所在的地方,很困惑。我使用我的白名单电子邮件/密码成功获得了我的身份验证令牌,并通过我的客户端服务器注册并接受了 C2DM 程序。然后编译了 Lars 的项目来生成我的设备注册 id,但是一旦它们一起使用,我就会得到上面的未注册错误,并且没有推送通知。

想法?如果您需要更多信息,请发表评论,我会更新帖子。谢谢。

4

2 回答 2

4

如果您按照我的示例,您应该在 RegisterActivity 的文本字段中维护您的注册 C2DM 用户(电子邮件地址)。这必须与 CURL 事物中的相同。还要确保正确复制身份验证字符串。

于 2011-03-13T19:23:24.643 回答
2

您是否已经检查过这个先前的问题?这个问题也经常在android-c2dm邮件列表中讨论。这里是搜索NotRegistered

一个常见问题是您在应用程序上使用的发件人 ID 与用于生成身份验证令牌的发件人 ID 不同。请注意,在 C2DM 注册表单中,您提供了两个电子邮件地址:一个只是在您被接受时通知您,另一个是“角色帐户”。后者也称为发件人 ID,必须在电话应用程序和用于生成身份验证令牌的帐户中使用。

于 2011-03-13T13:48:20.670 回答