【问题标题】:push notifications via quickblox通过 quickblox 推送通知
【发布时间】:2015-03-09 03:05:39
【问题描述】:

我正在尝试使用 nodejs 为后端使用 quickblox 为我的应用程序实现推送通知。我正在按照 quickblox 网站上提到的步骤执行此操作,即创建会话用户,创建推送令牌,最后订阅通知频道。我在创建推送令牌时遇到问题。我的服务器端代码如下所示:

app.post('/test_quickblox', function(req, res) {

    var params = {
        login: req.user.qb_username,
        password: req.user.qb_password,
    }
    console.log(params);
    QB.createSession(params, function(err, result) {
        if (err) {
            console.log(err);
        }
        console.log(result);

        var options = {};
        options.headers = {};
        options.headers['QuickBlox-REST-API-Version'] = '0.1.0';
        options.headers['QB-Token'] = result.token;
        options.body = {};
        options.body['push_token'] = {};
        options.body['push_token']['environment'] = 'development';
        options.body['push_token']['client_identification_sequence'] = '54b1e2b9e9081ed60520824054b1e2b8e9081ed60520823f';
        options.body['device'] = {};
        options.body['device']['platform'] = 'ios';
        options.body['device']['udid'] = 'e0101010d38bde8e6740011221af335301010333';

        options.url = 'http://api.quickblox.com/push_tokens.json';
        QuickbloxRequest(options, function(err, response) {
            if (err) {
                console.log(err);
                return apiError();
            }
            console.log(response);
            res.apiSuccess();
        });
    });
});

记录响应时,如下所示

{ _id: '54b1e3a1535c121c2000be66', application_id: 18113, created_at: '2015-01-11T02:44:49Z', device_id: 0, 随机数:8394, 令牌:'bf61098a35fac9389be236caec44f0a9827630d1', ts: 1420944288, updated_at: '2015-01-11T02:44:49Z', 用户 ID:2179940, 编号:56046 }

我得到的错误是:

{"code":null,"message":"当前用户会话没有注册设备。设备必须能够使用推送令牌执行操作。"}

我猜问题在于 device_id 为 0。 请注意,我在另一个控制器中创建用户时没有提供任何 device_id,所以我认为这可能是我的问题,但我是 quickblox 的新手,还不了解所有语义,所以请帮助我找出问题所在。谢谢

【问题讨论】:

    标签: javascript node.js push-notification quickblox


    【解决方案1】:

    4 年后,我遇到了同样的问题。没有答案,没有,这让你想知道 quickblox 社区有多大:O

    无论如何,对于遇到同样问题的人来说:问题似乎是 PhoneGap 返回的 Android UUID 太短,所以 quickblox 默默地拒绝它。

    这对我有用。注意uuid的翻倍:

    window.device.uuid + window.device.uuid
    

    JS代码:

                //REGISTER AS ANDROID
                var message = {
                    environment: "development",
                    client_identification_sequence: e.regid,
                    platform: "android", 
                    udid: window.device.uuid + window.device.uuid,
                }; 
    
                if (BBPushNotification.showLog)  console.log(message);
    
                QB.messages.tokens.create(message, function(err, response){
                  if (err) {
                    if (BBPushNotification.showLog)  console.log("Create token error : ",err);
                  } else {
                    if (BBPushNotification.showLog)  console.log("Create token success : ",response);
                  }
                });
    

    【讨论】:

    • 您好,很抱歉线程杰克,但我正在努力寻找您如何获得 client_identifcation_sequence。我创建了一个用户会话,apns 证书在管理面板上......我从哪里得到这个神秘的 CIS?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多