gpt4 book ai didi

javascript - 通过 Quickblox 推送通知

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:22 30 4
gpt4 key购买 nike

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

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, token: 'bf61098a35fac9389be236caec44f0a9827630d1', ts: 1420944288, updated_at: '2015-01-11T02:44:49Z', user_id: 2179940, id: 56046 }

我得到的错误是:

{"code":null,"message":"No device registered for current user session. Device is obligatory to be able to execute actions with push token."}

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

最佳答案

四年后,我遇到了同样的问题。没有答案,什么也没有,这让你想知道 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);
}
});

关于javascript - 通过 Quickblox 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883516/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com