2015-01-11 3 views
2

Я пытаюсь реализовать push-уведомления для своего приложения, используя nodejs для бэкэнд, используя quickblox. Я выполняю шаги, чтобы сделать это, как указано на сайте quickblox, т. Е. Создайте пользователя сеанса, создайте токен-токен и последний подписаться на канал уведомлений. Я сталкиваюсь с проблемой создания токена. Мой стороне сервера код выглядит следующим образом:push-уведомления через 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, Nonce: 8394, лексем: 'bf61098a35fac9389be236caec44f0a9827630d1', ц: 1420944288, updated_at: '2015-01-11T02: 44: 49Z', user_id: 2179940, ID: 56046}

и ошибка, я получаю:

{ "код": нулевой, "сообщение": "Нет устройства зарегистрированы для текущего сеанса пользователя. Устройство является обязательным, чтобы иметь возможность выполнять действия с нажимной лексемой. "}

Я думаю, что проблема заключается в DEVICE_ID будучи 0. Обратите внимание, что я создаю пользователь в другом контроллере без подачи какого-либо device_id при создании, поэтому я думаю, что это может быть моей проблемой, но я новичок в quickblox и не понимаю все семантики, поэтому, пожалуйста, помогите мне выяснить, в чем проблема. Спасибо

ответ

0

И вот мы 4 года спустя, и я столкнулся с тем же проблема. Нет ответа, нет ничего, это заставляет задуматься, насколько велик сообщество quickblox: O

В любом случае, fo кто приходит сюда с той же проблемой: кажется, проблема в том, что Android UUID, возвращенный PhoneGap, слишком короткий, поэтому 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

Смежные вопросы