适用于 Android 的 Bluemix 推送通知未发送任何通知
Posted
技术标签:
【中文标题】适用于 Android 的 Bluemix 推送通知未发送任何通知【英文标题】:Bluemix push notification for android is not sending any notifications 【发布时间】:2016-09-13 21:47:45 【问题描述】:我正在尝试使用此处提供的示例代码:https://github.com/ibm-bluemix-mobile-services/bms-samples-android-hellopush
我发现的第一个困难是配置 GCM - 自从它被记录以来似乎发生了一些变化 - 无论如何我想我已经正确配置了所有东西。
我的应用程序运行正常,我可以注册我的设备,但是当我尝试发送它时没有通知。我同时使用 bluemix 仪表板和 swagger 来发送消息。我得到的响应是消息已发送,但我在设备(手机,而不是模拟器)上什么也没有。
我检查了我的 Google API 仪表板,但 GCM api 上没有任何活动。
应用ID为:f97eb706-3375-438d-8221-cd7ac0266de1
【问题讨论】:
【参考方案1】:我在使用 Postman 测试 GCM API (https://android.googleapis.com/gcm/send) 时收到“错误 401 未经授权”。我尝试创建新的 API 密钥,但没有成功。
读完后:https://***.com/a/22453025/6828416 我尝试在 GCM 上创建一个新项目,它突然开始工作。
【讨论】:
今天在演示中我今天又遇到了这个问题@joe - 你能帮我调试一下吗? 当然!如果您打开支持票证,我们应该能够看到有关您的服务实例的更多信息,并且可能会在必要时进行屏幕共享会话。【参考方案2】:目前正在为 GCM 更新文档,因此很快就会修复。
我试图重现您的问题,并在此处使用 Android 示例(使用最新版本的 Android Studio v2.1.3)测试了带有推送通知的示例:
之前:
之后:
这是我在克隆样本(模拟值)后编辑代码 sn-ps 的方式:
代码编辑 1 之前:
BMSClient.getInstance().initialize(this, "<APPLICATION_ROUTE>", "<APPLICATION_ID>", BMSClient.REGION_US_SOUTH);
代码编辑 1 之后:
BMSClient.getInstance().initialize(this, "http://imfpush.ng.bluemix.net", "dfadsfadsfdsf-2343-2334-8e82-421c02ce847c", BMSClient.REGION_US_SOUTH);
代码编辑 2 之前:
push.initialize(this, "<APPLICATION_ID>", "<CLIENT_SECRET>");
代码编辑 2 之后:
push.initialize(this, "dfadsfadsfdsf-2343-2334-8e82-421c02ce847c", "edec64df-34fd-44e3-9d1e-dfsfsdf989899");
我从推送通知服务凭证(模拟值)中获得了这些值。
这是我设置 GCM 的方法:
在我的 Bluemix 配置中,它看起来像这样(模拟值):
以下是我从 GCM(模拟值)中获取这些值的方式:
发件人 ID:
API 密钥:
【讨论】:
请与我联系,让我知道这是否适合您。如果没有,我们可以进行更多调试。 不幸的是它没有用。我从头开始创建所有内容,但仍然无法收到通知。 !Screenshot. 我注意到您的 API 密钥是在 2016 年 5 月 3 日创建的。@joe 您能否通过创建新 API 和新 API 密钥来运行新测试?我相信谷歌对 GCM 做了一些改动,我得到的和你的不一样。【参考方案3】:@Paulo 对于新项目,仪表板不会在https://console.developers.google.com 中启用 GCM API。 启用 GCM 的步骤: 创建新项目->创建 API 密钥->启用 GCM。 要启用 GCM,请导航到仪表板选项卡并搜索 Google Cloud Messaging-> 单击 GCM 并启用 API。请等待 5 分钟以激活它。
为推送通知配置 GCM 凭据-> 注册设备并发送通知。
【讨论】:
以上是关于适用于 Android 的 Bluemix 推送通知未发送任何通知的主要内容,如果未能解决你的问题,请参考以下文章