2015-01-11 324 views
2

我想为我的应用程序使用quickblox后端使用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', USER_ID:2179940, ID:56046}

,我得到的错误是:

{ “代码”:空, “消息”:“不为当前用户会话注册的设备。设备是强制性的,能够与推送令牌来执行动作。“}

我想问题出在DEVICE_ID是0 请注意,我创造了另一个控制器的用户,无需在创建提供任何DEVICE_ID,所以我认为这可能是我的问题,但我是quickblox的新手,并且不明白所有的语义,所以请帮助我找出问题所在。谢谢

回答

0

而这里我们是4年后,我面临同样的问题没有答案,也没有,它让你想知道quickblox社区有多大:O

无论如何,fo任何人在这里都会遇到同样的问题:看起来问题在于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); 
       } 
      }); 
+0

你好,不好意思线程插孔,但我在努力寻找如何获得client_identifcation_sequence。我创建了一个用户会话,apns证书在管理面板中......我在哪里得到这个神秘的CIS?谢谢 – anthonyhumphreys