Ejemplo n.º 1
0
        public static void PushMessageToSingle(string title, string content, string data, string cid)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:TransmissionTemplate:透传模板
            var template = NotificationTemplateDemo(title, content, data);
            // 单推消息模型

            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            message.PushNetWorkType = 0;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = cid;
            //target.alias = ALIAS;
            try
            {
                push.pushMessageToSingle(message, target);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                push.pushMessageToSingle(message, target, requestId);
            }
        }
Ejemplo n.º 2
0
        //PushMessageToSingle接口测试代码
        private static void PushMessageToSingle()
        {
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例
            TransmissionTemplate template = new TransmissionTemplate();

            template.AppId               = APPID;       // 应用APPID
            template.AppKey              = APPKEY;      // 应用APPKEY
            template.TransmissionType    = "1";         // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
            template.TransmissionContent = "您需要透传的内容";  // 需要透传的内容

            //iOS推送需要的pushInfo字段
            //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;

            String pushResult = push.pushMessageToSingle(message, target);

            System.Console.WriteLine("-----------PushMessageToSingle--------------" + pushResult);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// PushMessageToSingle接口测试代码
        /// </summary>
        /// <param name="PaltForm">平台类型  1:苹果 2:安卓</param>
        /// <param name="clientId"></param>
        /// <param name="NoticeTitle">通知标题</param>
        /// <param name="NoticeContent">通知内容</param>
        /// <param name="custom_content">自定义内容</param>
        /// <returns></returns>
        public static string PushMessageToSingle(int PaltForm, string clientId, string NoticeTitle, string NoticeContent, string custom_content)
        {
            CLIENTID = clientId;
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            /*消息模版:
             *  1.TransmissionTemplate:透传模板
             *  2.LinkTemplate:通知链接模板
             *  3.NotificationTemplate:通知透传模板
             *  4.NotyPopLoadTemplate:通知弹框下载模板
             */
            //数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户
            //TransmissionTemplate template = TransmissionTemplateDemo(PaltForm, NoticeTitle, NoticeContent, custom_content);
            //LinkTemplate template = LinkTemplateDemo(NoticeTitle, NoticeContent);
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(NoticeTitle, NoticeContent);

            //在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
            NotificationTemplate template = NotificationTemplateDemo(PaltForm, NoticeTitle, NoticeContent, custom_content);

            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;

            String pushResult = push.pushMessageToSingle(message, target);

            return(pushResult);
        }
Ejemplo n.º 4
0
        public static string GeTuiMsg(string msgTitle, string msgBody, string appid, string appkey, string mastersecret, string clientId, DateTime?msgPostTime)
        {
            var HOST = "http://sdk.open.api.igexin.com/apiex.htm";

            var push = new IGtPush(HOST, appkey, mastersecret);
            // 定义"AppMessage"类型消息对象,设置消息内容模板、发送的目标App列表、是否支持离线发送、以及离线消息有效期(单位毫秒)
            var batch = new BatchImpl(appkey, push);
            //var message = new AppMessage();
            var message = new SingleMessage();
            //var template = NotificationTemplateDemo(msgTitle, msgBody, appid, appkey, msgPostTime);
            var template = TransmissionContent(msgTitle, msgBody, appid, appkey);

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data            = template;
            message.PushNetWorkType = 0;

            var targetTrans = new Target
            {
                appId    = appid,
                clientId = clientId
            };

            batch.add(message, targetTrans);
            try
            {
                return(batch.submit());
            }
            catch
            {
                return(batch.retry());
            }
        }
Ejemplo n.º 5
0
 public string pushAPNMessageToSingle(string appId, string deviceToken, SingleMessage message)
 {
     if (deviceToken == null || deviceToken.Length != 64)
     {
         throw new Exception("deviceToken " + deviceToken + " length must be 64");
     }
     return(httpPostJSON(new Dictionary <string, object>
     {
         {
             "action",
             "apnPushToSingleAction"
         },
         {
             nameof(appId),
             appId
         },
         {
             "appkey",
             appKey
         },
         {
             "DT",
             deviceToken
         },
         {
             "PI",
             Convert.ToBase64String(message.Data.getPushInfo().ToByteArray())
         }
     }));
 }
Ejemplo n.º 6
0
        public override string Push()
        {
            string pushResult;
            var    message = new SingleMessage
            {
                Data              = GeTui.ToTemplate(PhoneType, TemplateType),
                IsOffline         = true,             // 用户当前不在线时,是否离线存储,可选
                OfflineExpireTime = 1000 * 3600 * 12, // 离线有效时间,单位为毫秒,可选
                PushNetWorkType   = 0                 //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
            };
            var target = new Target
            {
                appId    = ConfigSettings.AppId,
                clientId = GeTui.ClientId
            };

            try
            {
                pushResult = pushMessageToSingle(message, target);
            }
            catch (RequestException ex)
            {
                var requestId = ex.RequestId;
                pushResult = pushMessageToSingle(message, target, requestId);//发送失败后的重发
            }

            return(pushResult);
        }
Ejemplo n.º 7
0
        private static string HOST         = "http://sdk.open.api.igexin.com/apiex.htm"; //HOST:OpenService接口地址

        //PushMessageToSingle接口测试代码
        public static string PushMessageToSingle(string cid, string title, string messageText)
        {
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            /*消息模版:
             *  1.TransmissionTemplate:透传模板
             *  2.LinkTemplate:通知链接模板
             *  3.NotificationTemplate:通知透传模板
             *  4.NotyPopLoadTemplate:通知弹框下载模板
             */

            //TransmissionTemplate template =  TransmissionTemplateDemo();
            NotificationTemplate template = NotificationTemplateDemo(title, messageText);
            //LinkTemplate template = LinkTemplateDemo();
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = cid;

            string pushResult = push.pushMessageToSingle(message, target);

            return(pushResult);
        }
Ejemplo n.º 8
0
        //private static String DeviceToken = "";  //填写IOS系统的DeviceToken
        /// <summary>
        /// 单个消息推送
        /// </summary>
        /// <param name="TransmissionType">应用启动类型,1:强制应用启动 2:等待应用启动</param>
        /// <param name="TransmissionContent">透传内容</param>
        /// <param name="beginTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="endTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="CLIENTID">个推clientId</param>
        public static void PushMessageToSingle(string TransmissionType, string TransmissionTitle, string TransmissionContent, string beginTime, string endTime, string CLIENTID)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:TransmissionTemplate:透传模板
            TransmissionTemplate template = TransmissionTemplate(TransmissionType, TransmissionTitle, TransmissionContent, beginTime, endTime);
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                        // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
            }
        }
Ejemplo n.º 9
0
        public override string Push()
        {
            var message = new SingleMessage
            {
                Data              = GeTui.ToTemplate(PhoneType, TemplateType),
                IsOffline         = true,             // 用户当前不在线时,是否离线存储,可选
                OfflineExpireTime = 1000 * 3600 * 12, // 离线有效时间,单位为毫秒,可选
                PushNetWorkType   = 0                 //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
            };
            var batch = new BatchImpl(ConfigSettings.AppKey, this);

            foreach (var cid in GeTui.ClientId.Split(','))
            {
                var target = new Target
                {
                    appId    = ConfigSettings.AppId,
                    clientId = cid
                };
                batch.add(message, target);
            }
            try
            {
                return(batch.submit());
            }
            catch (Exception)
            {
                return(batch.retry());
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// ios个推离线通知
        /// </summary>
        /// <param name="title"></param>
        /// <param name="content"></param>
        /// <param name="token"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string APNsPushToSingle(string title, string content, string token, object data)
        {
            APNTemplate        template   = new APNTemplate();
            APNPayload         apnpayload = new APNPayload();
            DictionaryAlertMsg alertMsg   = new DictionaryAlertMsg();

            alertMsg.Body         = content; //通知文本消息字符串
            alertMsg.ActionLocKey = "";
            alertMsg.LocKey       = "";
            alertMsg.addLocArg("");
            alertMsg.LaunchImage = "";    //指定启动界面图片名
            //IOS8.2支持字段
            alertMsg.Title       = title; //通知标题
            alertMsg.TitleLocKey = "";
            alertMsg.addTitleLocArg("");
            apnpayload.AlertMsg = alertMsg;
            //apnpayload.Badge = 1;//应用icon上显示的数字
            apnpayload.ContentAvailable = 1;       //推送直接带有透传数据
            apnpayload.Category         = "";
            apnpayload.Sound            = "";      //通知铃声文件名
            apnpayload.addCustomMsg("data", data); //增加自定义的数据
            template.setAPNInfo(apnpayload);
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            /*单个用户推送接口*/
            SingleMessage Singlemessage = new SingleMessage();

            Singlemessage.Data = template;
            String pushResult = push.pushAPNMessageToSingle(APPID, token, Singlemessage);

            Console.Out.WriteLine(pushResult);
            return(pushResult);
        }
Ejemplo n.º 11
0
        //pushMessageToSingle接口测试代码
        public String pushMessageToSingle(SingleMessage message, com.igetui.api.openservice.igetui.Target target)
        {
            Dictionary <string, object> param = new Dictionary <string, object>();

            /*---以下代码用于设定接口相应参数---*/
            param.Add("action", "pushMessageToSingleAction");
            param.Add("appkey", appKey);
            param.Add("appId", target.appId);
            this.appId = target.appId;
            param.Add("clientId", target.clientId);
            //param.Add("time", "2012-12-31 12:24:23");		            //当前请求时间,可选
            //param.Add("expire", 3600);					            //消息超时时间,单位为秒,可选
            param.Add("isOffline", message.IsOffline);                               //是否离线
            param.Add("offlineExpireTime", message.OfflineExpireTime);               //离线有效时间,单位为毫秒
            param.Add("transmissionContent", message.Data.getTransmissionContent()); //您需要透传的内容
            param.Add("type", 2);                                                    //默认都为消息
            param.Add("pushType", message.Data.getPushType());                       //TransmissionMsg, LinkMsg, NotifyMsg

            //Transparent.Builder builder = getTransparentBuilder();
            param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray()));

            // post数据
            String Result = httpPostJSON(param);

            System.Console.WriteLine("--------pushMessageToSingle result------------" + Result);
            return(Result);
        }
Ejemplo n.º 12
0
 public string add(SingleMessage message, Target target)
 {
     if (seqId >= 5000)
     {
         throw new Exception("Can not add over 5000 message once! Please call submit() first.");
     }
     innerMsgList.Add(SingleBatchItem.CreateBuilder().SetSeqId(seqId).SetData(createPostParams(message, target))
                      .Build());
     ++seqId;
     return(string.Concat(seqId));
 }
Ejemplo n.º 13
0
        //PushMessageToSingle接口测试代码
        //public static void PushMessageToSingle()
        //{
        //    // 推送主类
        //    IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

        //    /*消息模版:
        //        1.TransmissionTemplate:透传模板
        //        2.LinkTemplate:通知链接模板
        //        3.NotificationTemplate:通知透传模板
        //        4.NotyPopLoadTemplate:通知弹框下载模板
        //     */

        //    TransmissionTemplate template = TransmissionTemplateDemo();
        //    //NotificationTemplate template =  NotificationTemplateDemo();
        //    //LinkTemplate template = LinkTemplateDemo();
        //    //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();


        //    // 单推消息模型
        //    SingleMessage message = new SingleMessage();
        //    message.IsOffline = true;                         // 用户当前不在线时,是否离线存储,可选
        //    message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
        //    message.Data = template;
        //    //message.PushNetWorkType = 1;        //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境

        //    com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
        //    target.appId = APPID;
        //    target.clientId = CLIENTID;
        //    //target.alias = ALIAS;

        //    try
        //    {
        //        String pushResult = push.pushMessageToSingle(message, target);

        //        System.Console.WriteLine("-----------------------------------------------");
        //        System.Console.WriteLine("-----------------------------------------------");
        //        System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
        //    }
        //    catch (RequestException e)
        //    {
        //        String requestId = e.RequestId;
        //        String pushResult = push.pushMessageToSingle(message, target, requestId);
        //        System.Console.WriteLine("-----------------------------------------------");
        //        System.Console.WriteLine("-----------------------------------------------");
        //        System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
        //    }
        //}

        public static void PushMessageToSingleBatch()
        {
            // 推送主类
            IGtPush push  = new IGtPush(HOST, APPKEY, MASTERSECRET);
            IBatch  Batch = push.getBatch();

            /*消息模版:
             *  1.TransmissionTemplate:透传模板
             *  2.LinkTemplate:通知链接模板
             *  3.NotificationTemplate:通知透传模板
             *  4.NotyPopLoadTemplate:通知弹框下载模板
             */

            //TransmissionTemplate template = TransmissionTemplateDemo();

            NotificationTemplate template = NotificationTemplateDemo();

            template.Title = "程序推送";
            template.Text  = "这是推送的内容";
            //LinkTemplate template = LinkTemplateDemo();
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 1;        //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;

            Batch.add(message, target);

            try
            {
                String pushResult = Batch.submit();

                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
            catch (Exception e)
            {
                String pushResult = Batch.retry();
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
        }
Ejemplo n.º 14
0
        public string sendMessageFromDistribution(Stream s)
        {
            StreamReader  reader = new StreamReader(s);
            string        requestRetrunReasonString = reader.ReadToEnd();
            SingleMessage request = JsonConvert.DeserializeObject <SingleMessage>(requestRetrunReasonString);

            Distribution distribution = new Distribution();

            string result = distribution.sendMessageFromDistribution(request);

            return(result);
        }
Ejemplo n.º 15
0
    /// <summary>
    /// This example uses the Grpc operations on the stats service client. The Grpc methods allow specifying
    /// Grpc Headers and are tightly coupled with the Grpc interfaces.
    /// </summary>
    private static async Task GrpcOperations(EchoService.EchoServiceClient client)
    {
        // Unary operation
        {
            SingleMessage unaryResponse = await client.EchoUnary(new SingleMessage { Message = "hi there" }, default);

            Console.WriteLine($"EchoUnary: {unaryResponse.Message}");
        }

        // Client streaming
        {
            AsyncClientStreamingCall <SingleMessage, MultiMessage> call = client.EchoClientStreaming(default);
Ejemplo n.º 16
0
        /// <summary>
        /// 2 群组动态
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushGroupDynamic(string deviceid, string touid, string msg)
        {
            var currentMethod = "PushGroupDynamic";


            var title   = "群组动态通知";
            var content = "新的群组动态";

            var model = JsonConvert.DeserializeObject <AppGroupDynamic>(msg);

            title = model.GroupName;
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板
            var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";


            var getui = new GeTuiMessage
            {
                mtype    = 2,
                mcontent = model,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;

            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.个推-群组动态类消息[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.个推-群组动态类消息[{touid}]推送的返回结果:{Environment.NewLine}{pushResult}");
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.个推-群组动态类消息[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
Ejemplo n.º 17
0
        // Token: 0x060004A6 RID: 1190 RVA: 0x00009978 File Offset: 0x00007B78
        public string add(SingleMessage message, igetui.Target target)
        {
            if (seqId >= 5000)
            {
                throw new Exception("Can not add over 5000 message once! Please call submit() first.");
            }
            string          data = createPostParams(message, target);
            SingleBatchItem item = SingleBatchItem.CreateBuilder().SetSeqId(seqId).SetData(data).Build();

            innerMsgList.Add(item);
            seqId++;
            return(string.Concat(seqId) ?? "");
        }
Ejemplo n.º 18
0
 // Token: 0x060004A7 RID: 1191 RVA: 0x000099F8 File Offset: 0x00007BF8
 public string createPostParams(SingleMessage message, igetui.Target target)
 {
     return(JsonConvert.SerializeObject(new Dictionary <string, object>
     {
         {
             "action",
             "pushMessageToSingleAction"
         },
         {
             "appkey",
             APPKEY
         },
         {
             "clientData",
             Convert.ToBase64String(message.Data.getTransparent().ToByteArray())
         },
         {
             "transmissionContent",
             message.Data.getTransmissionContent()
         },
         {
             "isOffline",
             message.IsOffline
         },
         {
             "offlineExpireTime",
             message.OfflineExpireTime
         },
         {
             "appId",
             target.appId
         },
         {
             "clientId",
             target.clientId
         },
         {
             "type",
             2
         },
         {
             "pushType",
             message.Data.getPushType()
         },
         {
             "version",
             "3.0.0.0"
         }
     }));
 }
Ejemplo n.º 19
0
        /// <summary>
        /// 推送单个用户
        /// </summary>
        /// <param name="template">模板内容</param>
        public string PushSingle(ITemplate template)
        {
            IGtPush       push    = new IGtPush("", APPKEY, MASTERSECRET);
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
            Target target = new Target();

            target.appId    = APPID;
            target.clientId = CLIENTID[0];
            return(push.pushMessageToSingle(message, target));
        }
Ejemplo n.º 20
0
		public void TestVec4()
		{
			var r = new DefaultSerializer<SingleMessage<Vector4>>(this.messageRegistry, this.typeRegistry,4);
			using (var buf = new ThreadSafeWriteQueue(1024))
			{
				var orig = new SingleMessage<Vector4> { MessageId = r.MessageId, A = new Vector4(1.1f, 2.2f, 3.3f,( 4.4f)) };
				r.Serialize(buf, orig);

				SingleMessage<Vector4> message = new SingleMessage<Vector4>();

				r.Deserialize(buf, buf.ReadMessage(), message);
				Assert.AreEqual(orig.MessageId, message.MessageId);
				Assert.AreEqual(orig.A, message.A);
			}

		}
Ejemplo n.º 21
0
        public string createPostParams(SingleMessage message, com.igetui.api.openservice.igetui.Target target)
        {
            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            dictionary.Add("action", "pushMessageToSingleAction");
            dictionary.Add("appkey", this.APPKEY);
            dictionary.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray()));
            dictionary.Add("transmissionContent", message.Data.getTransmissionContent());
            dictionary.Add("isOffline", message.IsOffline);
            dictionary.Add("offlineExpireTime", message.OfflineExpireTime);
            dictionary.Add("appId", target.appId);
            dictionary.Add("clientId", target.clientId);
            dictionary.Add("type", 2);
            dictionary.Add("pushType", message.Data.getPushType());
            dictionary.Add("version", "3.0.0.0");
            return(JsonConvert.SerializeObject(dictionary));
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Get messageHistory of specific chat
        /// </summary>
        /// <param name="token"></param>
        /// <param name="jobject"></param>
        /// <returns></returns>
        public object GetMessageHistory(string token, JObject jobject)
        {
            long chatId;

            try
            {
                chatId = jobject.ToObject <ChatIdParam>().ChatId;
                if (chatId == 0)
                {
                    throw new Exception();
                }
            }
            catch (Exception e)
            {
                _response.Status = 40003;
                _response.Result = "Invalid params. long ChatId is needed";
                return(_response);
            }

            string userName = _validator.GetUserName(token);

            if (_validator.CheckUser(userName))
            {
                MessageList messageList = new MessageList();
                foreach (var message in _repository.GetMessageHistory(chatId))
                {
                    SingleMessage singleMessage = new SingleMessage();
                    singleMessage.Id       = message.Id;
                    singleMessage.ChatId   = message.ChatId;
                    singleMessage.UserName = message.UserName;
                    singleMessage.Time     = message.Time;
                    singleMessage.Text     = message.Text;
                    messageList.Messages.Add(singleMessage);
                }

                _response.Status = 20000;
                _response.Result = messageList;
            }
            else
            {
                _response.Status = 40002;
                _response.Result = "Validation failed!!!";
            }
            return(_response);
        }
Ejemplo n.º 23
0
 public IActionResult Post([FromBody] SingleMessage message, [FromServices] SMSArbiter arbiter)
 {
     try
     {
         if (message.Body.MessageId == Guid.Empty)
         {
             Guid messageId = Guid.NewGuid();
             message.Body.MessageId = messageId;
         }
         arbiter.StorePendingMessage(message);
         arbiter._queue.Post(message);
         return(Ok(message.Body.MessageId));
     }
     catch
     {
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }
Ejemplo n.º 24
0
 //PushMessageToSingle接口测试代码
 private static string PushMessageToSingle(string strAdvice, string clientID)
 {
     // 推送主类
     IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
   //  LinkTemplate template = LinkTemplateDemo(strAdvice);
     NotificationTemplate notificationTemplate = NotificationTemplateDemo(strAdvice);
     SingleMessage message = new SingleMessage();
     // 用户当前不在线时,是否离线存储,可选
     message.IsOffline = false;
     // 离线有效时间,单位为毫秒,可选
     message.OfflineExpireTime = 1000 * 3600 * 12;
     message.Data = notificationTemplate;
     com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
     target.appId = APPID;
     target.clientId = clientID;
     String pushResult = push.pushMessageToSingle(message, target);
     return pushResult;
 }
Ejemplo n.º 25
0
        private static bool PushMsgToSingleDevice(string clientid, ITemplate msgTemplate)
        {
            bool result = false;

            try
            {
                IGtPush       gtPush        = new IGtPush(Push.HOST, Push.APPKEY, Push.MASTERSECRET);
                IBatch        batch         = gtPush.getBatch();
                SingleMessage singleMessage = new SingleMessage();
                singleMessage.IsOffline         = true;
                singleMessage.OfflineExpireTime = 2073600000L;
                singleMessage.Data = msgTemplate;
                Target target = new Target();
                target.appId    = Push.APPID;
                target.clientId = clientid;
                batch.add(singleMessage, target);
                try
                {
                    Push.errorMsg = batch.submit();
                    JsonData jsonData     = MyCommon.JsonStrToObj(Push.errorMsg);
                    string   jsonObjValue = MyCommon.getJsonObjValue(jsonData, "result");
                    if (jsonObjValue.ToLower() == "ok")
                    {
                        result = true;
                    }
                }
                catch (Exception ex)
                {
                    Push.errorMsg = batch.retry();
                    JsonData jsonData2     = MyCommon.JsonStrToObj(Push.errorMsg);
                    string   jsonObjValue2 = MyCommon.getJsonObjValue(jsonData2, "result");
                    if (jsonObjValue2.ToLower() == "ok")
                    {
                        result = true;
                    }
                    Push.errorMsg += ex.Message;
                }
            }
            catch (Exception ex2)
            {
                Push.errorMsg += ex2.Message;
            }
            return(result);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 18.个推-工作交办 todolist(群组日程、待办)消息通知(刘静杰)
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="touid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushToDoMessage(string deviceid, string touid, ScheduleModel msg)
        {
            var     currentMethod = "PushToDoMessage";
            IGtPush push          = new IGtPush(HOST, APPKEY, MASTERSECRET);
            var     intent        = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var     title         = "待办任务";
            var     content       = msg.title;

            var getui = new GeTuiMessage
            {
                mtype    = 18,
                mcontent = msg,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;

            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.(个推-待办任务)给[{touid}]推送的内容:" + messageJson);

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.(个推-待办任务)给[{touid}]返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.(个推-待办任务)给[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
Ejemplo n.º 27
0
        public async Task <ActionResult> Create(MessageCreateViewModel messageVM)
        {
            if (ModelState.IsValid)
            {
                var message = new SingleMessage {
                    id = db.SingleMessages.Count(), MessageText = messageVM.MessageText, TimeOfMessage = DateTime.Now
                };

                var userId       = User.Identity.GetUserId();
                var messageBoard = new MessageBoard {
                    MessageID = db.MessageBoards.Count(), SingleMessage = message, RecieverID = messageVM.RecieverID, SenderID = userId, ProfileLinkerID = messageVM.LinkerId
                };
                db.MessageBoards.Add(messageBoard);
                await db.SaveChangesAsync();

                return(RedirectToAction("MessagesForUser", "MessageBoards", new { id = messageVM.RecieverID }));
            }
            return(View());
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 给单个用户发送推送(DEMO)
        /// </summary>
        private static void PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            TransmissionTemplate template = TransmissionTemplateDemo();

            template.TransmissionContent = "测试";

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data            = template;
            message.PushNetWorkType = 0;                  //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            String pushResult = push.pushMessageToSingle(message, target);
        }
Ejemplo n.º 29
0
        static void apnPush(int PaltForm, string clientId, string NoticeTitle, string NoticeContent, string custom_content)
        {
            //APN高级推送
            IGtPush            push       = new IGtPush(HOST, APPKEY, MASTERSECRET);
            APNTemplate        template   = new APNTemplate();
            APNPayload         apnpayload = new APNPayload();
            DictionaryAlertMsg alertMsg   = new DictionaryAlertMsg();

            alertMsg.Body         = NoticeContent;
            alertMsg.ActionLocKey = "";
            alertMsg.LocKey       = "";
            alertMsg.addLocArg("");
            alertMsg.LaunchImage = "";
            //IOS8.2支持字段
            alertMsg.Title       = NoticeTitle;
            alertMsg.TitleLocKey = "";
            alertMsg.addTitleLocArg("");

            apnpayload.AlertMsg         = alertMsg;
            apnpayload.Badge            = 10;
            apnpayload.ContentAvailable = 1;
            apnpayload.Category         = "";
            apnpayload.Sound            = "";
            apnpayload.addCustomMsg("", "");
            template.setAPNInfo(apnpayload);


            /*单个用户推送接口*/
            SingleMessage Singlemessage = new SingleMessage();

            Singlemessage.Data = template;
            String pushResult = push.pushAPNMessageToSingle(APPID, DeviceToken, Singlemessage);

            /*多个用户推送接口*/
            //ListMessage listmessage = new ListMessage();
            //listmessage.Data = template;
            //String contentId = push.getAPNContentId(APPID, listmessage);
            ////Console.Out.WriteLine(contentId);
            //List<String> devicetokenlist = new List<string>();
            //devicetokenlist.Add(DeviceToken);
            //String ret = push.pushAPNMessageToList(APPID, contentId, devicetokenlist);
            //Console.Out.WriteLine(ret);
        }
Ejemplo n.º 30
0
        public SendAppMessageResultModel SendAppMessage(SendAppContentModel sendAppMessageModel)
        {
            IGtPush push = new IGtPush(Host, Appkey, Mastersecret);

            Target target = new Target();

            target.appId    = Appid;
            target.clientId = sendAppMessageModel.ClientId;

            ITemplate template = null;

            if (sendAppMessageModel.ClientType == "A")
            {
                //template = NotificationTemplateDemo(sendAppMessageModel.Title, sendAppMessageModel.Text,
                //    sendAppMessageModel.Content);

                template = TransmissionTemplateDemo(sendAppMessageModel.Title, sendAppMessageModel.Text,
                                                    sendAppMessageModel.Content);
            }
            else
            {
                template = TransmissionTemplateIOS(sendAppMessageModel.Title, sendAppMessageModel.Content,
                                                   sendAppMessageModel.Text);
            }


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            string pushResult = push.pushMessageToSingle(message, target);

            SendAppMessageResultModel result = JsonConvert.DeserializeObject <SendAppMessageResultModel>(pushResult);

            result.ResultInfo = pushResult;
            return(result);
        }
Ejemplo n.º 31
0
        public void PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板

            NotificationTemplate template = NotificationTemplateDemo();


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);

                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
        }
Ejemplo n.º 32
0
        //pushMessageToSingle接口测试代码
        public String pushMessageToSingle(SingleMessage message, com.igetui.api.openservice.igetui.Target target)
        {
            Dictionary<string, object> param = new Dictionary<string, object>();
            /*---以下代码用于设定接口相应参数---*/
            param.Add("action", "pushMessageToSingleAction");
            param.Add("appkey", appKey);
            param.Add("appId", target.appId);
            this.appId = target.appId;
            param.Add("clientId", target.clientId);
            //param.Add("time", "2012-12-31 12:24:23");		            //当前请求时间,可选
            //param.Add("expire", 3600);					            //消息超时时间,单位为秒,可选
            param.Add("isOffline", message.IsOffline);                              //是否离线
            param.Add("offlineExpireTime", message.OfflineExpireTime);           //离线有效时间,单位为毫秒
            param.Add("transmissionContent", message.Data.getTransmissionContent());       //您需要透传的内容
            param.Add("type", 2);                                       //默认都为消息
            param.Add("pushType", message.Data.getPushType());                   //TransmissionMsg, LinkMsg, NotifyMsg

            //Transparent.Builder builder = getTransparentBuilder();
            param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray()));

            // post数据
            String Result = httpPostJSON(param);
            System.Console.WriteLine("--------pushMessageToSingle result------------" + Result);
            return Result;
        }
Ejemplo n.º 33
0
        //PushMessageToSingle接口测试代码
        private static void PushMessageToSingle()
        {
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例
            TransmissionTemplate template = new TransmissionTemplate();
            template.AppId = APPID;                             // 应用APPID
            template.AppKey = APPKEY;                           // 应用APPKEY
            template.TransmissionType = "1";                    // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
            template.TransmissionContent = "您需要透传的内容";  // 需要透传的内容

            //iOS推送需要的pushInfo字段
            //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);

            // 单推消息模型
            SingleMessage message = new SingleMessage();
            message.IsOffline = true;                         // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId = APPID;
            target.clientId = CLIENTID;

            String pushResult = push.pushMessageToSingle(message, target);
            System.Console.WriteLine("-----------PushMessageToSingle--------------" + pushResult);
        }