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

我正在使用 Adob​​e AIR 开发一个 quickblox 应用程序,这迫使我使用 REST Api 而不是本机库。我无法让推送通知适用于离线消息或管理面板。以下是我所做的详细信息:

管理面板:

  1. 为开发和生产推送通知上传了 Apple 证书
  2. 为 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

如果我进入队列,消息显示为“已发送”,但我从未在我的设备中收到通知。

任何帮助将不胜感激

【问题讨论】:

    标签: json api notifications push quickblox


    【解决方案1】:

    你的代码看起来不错,

    一些cmets:

    1) 你不需要通过

    "device":{
            "platform":"ios",
            "udid":"71B18699-E1A3-13B6-F8C3-BDBF01AC1FFC-B4B3475569E9-6B6A-A27E-56D1-B73E0ED4"
            },
    

    会话的参数,因为您在创建推送令牌时传递它们

    2) udid - 仅用于分隔用户设备,因为用户可以拥有超过 1 个设备。因此,您可以将任何值传递给唯一标识用户特定设备的“udid”

    3) 如果您已从管理面板发送消息 - 这意味着我认为客户端一切正常。因此,只需检查您的 APNS 证书,然后重新上传即可。

    【讨论】:

    • 嗨。我已重新上传证书,但仍然没有收到通知。如果我将相同的证书上传到 urbanairship 并从那里发送测试消息,它可以工作,我的应用程序会收到通知,所以我认为一切都在服务器端正确设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2015-03-09
    • 2015-05-18
    相关资源
    最近更新 更多