Telerik推送通知过滤

本文关键字:过滤 通知 Telerik | 更新日期: 2023-09-27 18:29:31

我正在开发一个系统,该系统在系统中发布新项目时自动发送推送消息。一切顺利。问题是,我必须做一些过滤软件包和专业。

在第一个过滤器块中,它工作,但它发送到所有符合其中一个标准的设备。我想要的(并在测试2&3中尝试过)是,只有当某人拥有软件包和某个专业时,它才会发送。

telerik api的愚蠢之处在于它只返回一个HTTP400,因此调试是非常困难的

希望有人能帮我。

ps。我跳过了中一些不相关的代码/函数

function sendNotifications(some parameters)
{
    string json = "{";
    //Test code 1 - This works
    json += "'"Filter'": {";
    json += "'"Parameters.softwarePakket'": {'"$in'": [ '"{software_package}'"]},";
    json += "'"Parameters.beroepsGroep'": {'"$in'": ['"{profession1}'", '"{profession2}'"]},";
    json += "'"Parameters.module'": {'"$in'": ['"{module}'"]}},";
    //Test code 2 - This doesn't work
    //json += "'"Filter'": {'"$and'":[{'"Parameters.softwarePakket'":'"{software_package}'"},{'"Parameters.beroepsGroep'":'"{profession1}'"}]}";
    //Test code 3 - And this doesn't work either
    //json += "'"Filter'": '"{'"$and'":[{'"Parameters.softwarePakket'":'"{software_package}'"},{'"Parameters.beroepsGroep'":'"{profession1}'"}]}'"";
    //From here its all fine
    json += "'"Android'": {'"data'": {'"title'": '"{app_title}'",'"message'": '"{message}'",'"color'": '"#ffffff'",'"largeIcon'": '"{icon}'",'"customData'": '"{type}'"}},";
    json += "'"IOS'": {'"aps'": {'"alert'": '"{message}'",'"badge'": '"+1'",'"sound'": '"default'",'"category'": '"{type}'"},'"customData'": '"{type}'"}";
    json += "}";
    json = json.Replace("{type}", type);
    json = json.Replace("{icon}", formatIcon(type));
    json = json.Replace("{message}", genericMessage(type));
    var request = (HttpWebRequest)WebRequest.Create("http://api.everlive.com/v1/{app_id}/Push/Notifications");
    request.Method = "POST";
    request.ContentType = "application/json";
    request.ContentLength = json.Length;
    using (var stream = new StreamWriter(request.GetRequestStream()))
    {
        stream.Write(json);
        stream.Flush();
        stream.Close();
    }
    var response = (HttpWebResponse)request.GetResponse();
    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}

Telerik推送通知过滤

我认为过滤器字符串末尾缺少一个逗号。所以代码应该是:

//Test code 2
json += "'"Filter'": {'"$and'":[{'"Parameters.softwarePakket'":'"{software_package}'"},{'"Parameters.beroepsGroep'":'"{profession1}'"}]},";
//Test code 3
//json += "'"Filter'": '"{'"$and'":[{'"Parameters.softwarePakket'":'"{software_package}'"},{'"Parameters.beroepsGroep'":'"{profession1}'"}]}'",";