QuickBlox:无法使用 REST api 获得推送通知

Posted

技术标签:

【中文标题】QuickBlox:无法使用 REST api 获得推送通知【英文标题】:QuickBlox: can't get push notifications to work using REST api 【发布时间】:2013-03-19 11:39:59 【问题描述】:

我正在使用 Adob​​e 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 内容

QuickBlox 用户注册问题 REST API

Quickblox:上传图片 REST API

尝试创建 Quickblox 群聊对话框,使用 REST API 登录用户时出现错误。

用于系统通知的 Quickblox REST API

在 Quickblox 中通过 REST API 过滤用户