使用信号推送通知回送remoteMethod

时间:2017-06-22 21:58:36

标签: loopback

我还在学习,并努力学习。我正在寻找环回3上的硬远程方法,以便通过信号向特定用户发送推送通知。

我的代码有什么问题吗? 因为总是:

  

错误:['所有包含的玩家都没有订阅']

我的案例:

  1. 即时使用离子3框架
  2. loopback 3(或最新)
  3. 2位用户,(客户和卖方)
  4. 客户从线程卖家处购买产品。
  5. 如果订购成功,卖家将收到通知。
  6. 这是我的代码:

        Ajiorder.observe('after save', function (ctx, next) {
            console.log('Order', ctx.instance);
            let postingModel = app.models.AjiPosting;
            let userAuth = app.models.AjiUserAuth;
    
            postingModel.find({
                where:
                { id: ctx.instance.id }
            }, function (err, success) {
                console.log(success, 'SUKSES');
                if (ctx.instance) {
                    let dataFilter = [];
                    dataFilter.push({
                        'field': 'tag',
                        'key': 'id',
                        'relation': '=',
                        'value': success[0].id
                    });
                    console.log(success[0].idSeller, 'ID TOT')
                    console.log(dataFilter, 'dataFilter');
    
                    let data = {
                        idSeller: ctx.instance.idSeller
                    }
                    console.log(data, 'Data');
                    userAuth.find({
                        where:
                        { id: ctx.instance.idCustomer }
                    }, function (err, result) {
                        console.log(result, 'Data Personal');
    
                        let content = result[0].namaLengkap + ' ' + 'Order your product';
                        console.log(content, 'Nama Order');
                        console.log(ctx.instance.idSeller, 'My Dream', success[0].id);
                        if (ctx.instance.id != success[0].id) {
                            console.log('Spirit');
                            sendMessage(dataFilter, content, data);
                        }
                    })
                }
                next();
            });
        });
    
        var sendMessage = function (device, message, data) {
    
            var restKey = 'XXXXXXXXXXXXXXXXXX';
            var appID = 'XXXXXXXXXXXXXXXXX';
            request(
                {
                    method: 'POST',
                    uri: 'https://onesignal.com/api/v1/notifications',
                    headers: {
                        'authorization': 'Basic ' + restKey,
                        'content-type': 'application/json'
                    },
                    json: true,
                    body: {
                        'app_id': appID,
                        'filters': device,
                        'data': data,
                        'contents': { en: message }
                    }
                },
                function (error, response, body) {
                    try {
                        if (!body.errors) {
                            console.log(body);
                        } else {
                            console.error('Error:', body.errors);
                        }
                    } catch (err) {
                        console.log(err);
                    }
    
                }
            )
        }
    };
    

    我收到了这个错误:

      

    错误:['所有包含的玩家都没有订阅']

    图片:Picture of Console Log Here

    任何人都可以帮助我吗? 抱歉我的英语太差了。

    问候

1 个答案:

答案 0 :(得分:0)

解决了!

我忘了从onesignal添加一些代码。感谢