QuickBlox:无法使用 REST api 获得推送通知
Posted
技术标签:
【中文标题】QuickBlox:无法使用 REST api 获得推送通知【英文标题】:QuickBlox: can't get push notifications to work using REST api 【发布时间】:2013-03-19 11:39:59 【问题描述】:我正在使用 Adobe AIR 开发一个 quickblox 应用程序,这迫使我使用 REST Api 而不是本机库。我无法让推送通知适用于离线消息或管理面板。以下是我所做的详细信息:
管理面板:
-
为开发和生产推送通知上传了 Apple 证书
为 GCM 设置项目 ID 和服务器密钥
在应用程序激活时:
向 APNS 注册。获取设备令牌:
XXXXXXX1fd86e783c1410e9b9e41e9f11339e33f17f59bfcc7d6bf9XXXXXXXXX
为设备生成 udid。这不是 Apple 的设备 UDID,因为它现在已被弃用。我自己生成一个。我这样说是为了以防万一这可能是问题
使用设备信息以用户身份登录 Quickblox
发布
"auth_key":"XXXXXXXXXX",
"nonce":8072,
"user":
"password":"XXXXXXX",
"login":"XXXXXX"
,
"application_id":"1563",
"timestamp":1363692198,
"device":
"platform":"ios",
"udid":"71B18699-E1A3-13B6-F8C3-BDBF01AC1FFC-B4B3475569E9-6B6A-A27E-56D1-B73E0ED4"
,
"signature":"d61293bbd98d2e523952c0f30e44ec514fb7f86a"
登录正常。创建推送令牌。作为client_identification_sequence
,我使用从Apple 检索到的令牌
发布
"push_token":
"environment":"development",
"client_identification_sequence":"XXXXXXX1fd86e783c1410e9b9e41e9f11339e33f17f59bfcc7d6bf9XXXXXXXXX"
,
"device":
"platform":"ios",
"udid":"71B18699-E1A3-13B6-F8C3-BDBF01AC1FFC-B4B3475569E9-6B6A-A27E-56D1-B73E0ED4"
Quickblox 返回一个令牌 153323
,所以我认为一切正常
现在创建订阅
发布
"notification_channels":"apns"
Quickblox 返回以下内容
[
"subscription":
"device":
"udid":"71B18699-E1A3-13B6-F8C3-BDBF01AC1FFC-B4B3475569E9-6B6A-A27E-56D1-B73E0ED4",
"platform":
"name":"ios"
,
"id":167704,
"notification_channel":
"name":"apns"
]
UDid 匹配我从登录中传递的 udid。一切看起来都很好
现在我进入管理面板并尝试发送消息。管理面板说:
Notification has been successfully added to queue
如果我进入队列,消息显示为“已发送”,但我从未在我的设备中收到通知。
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:你的代码看起来不错,
一些cmets:
1) 你不需要通过
"device":
"platform":"ios",
"udid":"71B18699-E1A3-13B6-F8C3-BDBF01AC1FFC-B4B3475569E9-6B6A-A27E-56D1-B73E0ED4"
,
会话的参数,因为您在创建推送令牌时传递它们
2) udid - 仅用于分隔用户设备,因为用户可以拥有超过 1 个设备。因此,您可以将任何值传递给唯一标识用户特定设备的“udid”
3) 如果您已从管理面板发送消息 - 这意味着我认为客户端一切正常。因此,只需检查您的 APNS 证书,然后重新上传即可。
【讨论】:
嗨。我已重新上传证书,但仍然没有收到通知。如果我将相同的证书上传到 urbanairship 并从那里发送测试消息,它可以工作,我的应用程序会收到通知,所以我认为一切都在服务器端正确设置。以上是关于QuickBlox:无法使用 REST api 获得推送通知的主要内容,如果未能解决你的问题,请参考以下文章
QuickBlox - 如何使用 REST API + PHP 创建 blob 内容