2015-01-11 294 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