Example #1
0
 /// <summary>
 /// Android平台推送消息给单个账号
 /// </summary>
 /// <param name="accessId"></param>
 /// <param name="secretKey"></param>
 /// <param name="title"></param>
 /// <param name="content"></param>
 /// <param name="account"></param>
 /// <returns></returns>
 public static Ret PushAccountAndroid(long accessId, String secretKey, String title, String content, String account)
 {
     var message = new Message()
     {
         Title = title,
         Type = Message.TYPE_NOTIFICATION,
         Content = content
     };
     XingeApp xinge = new XingeApp(accessId, secretKey);
     return xinge.PushSingleAccount(account, message);
 }
Example #2
0
        /// <summary>
        /// 通过Tag推送到android设备
        /// </summary>
        /// <param name="tagList"></param>
        /// <param name="tagOp"></param>
        /// <param name="msg"></param>
        /// <returns>返回值json反序列化后的类</returns>
        public Ret PushTags(List<String> tagList, String tagOp, Message msg)
        {
            if (tagList == null || tagList.Count == 0)
            {
                throw new ArgumentNullException("tagList");
            }
            IDictionary<string, string> parameters = new Dictionary<string, string>();
            parameters.Add("message", msg.ToJson());
            parameters.Add("message_type", msg.Type.ToString());
            parameters.Add("tags_list", JsonConvert.SerializeObject(tagList));
            parameters.Add("tags_op", tagOp);
            parameters.Add("expire_time", msg.ExpireTime.ToString());
            parameters.Add("send_time", msg.SendTime);
            parameters.Add("multi_pkg", msg.MultiPkg.ToString());
            if (msg.LoopInterval > 0 && msg.LoopTimes > 0)
            {
                parameters.Add("loop_interval", msg.LoopInterval.ToString());
                parameters.Add("loop_times", msg.LoopTimes.ToString());
            }

            return CallRestful(XinGeConfig.RESTAPI_PUSHTAGS, parameters);
        }
Example #3
0
 /// <summary>
 /// 推送到 单个用户 Android
 /// </summary>
 /// <param name="Account"></param>
 /// <param name="msg"></param>
 /// <returns>返回值json反序列化后的类</returns>
 public Ret PushSingleAccount(string Account, Message msg)
 {
     if (msg == null)
     {
         throw new ArgumentNullException("msg");
     }
     if (string.IsNullOrEmpty(Account))
     {
         throw new ArgumentNullException("Account");
     }
     IDictionary<string, string> parameters = new Dictionary<string, string>();
     parameters.Add("account", Account);
     parameters.Add("send_time", msg.SendTime);
     parameters.Add("multi_pkg", msg.MultiPkg.ToString());
     parameters.Add("expire_time", msg.ExpireTime.ToString());
     parameters.Add("message", msg.ToJson());
     parameters.Add("message_type", msg.Type.ToString());
     return CallRestful(XinGeConfig.RESTAPI_PUSHSINGLEACCOUNT, parameters);
 }
Example #4
0
        /// <summary>
        /// 推送到 单个设备 安卓
        /// </summary>
        /// <param name="deviceToken"></param>
        /// <param name="message"></param>
        /// <returns>返回值json反序列化后的类</returns>
        public Ret PushSingleDevice(string deviceToken, Message message)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            if (string.IsNullOrEmpty(deviceToken))
            {
                throw new ArgumentNullException("deviceToken");
            }
            IDictionary<string, string> parameters = new Dictionary<string, string>();
            parameters.Add("device_token", deviceToken);
            parameters.Add("send_time", message.SendTime);
            parameters.Add("multi_pkg", message.MultiPkg.ToString());
            parameters.Add("expire_time", message.ExpireTime.ToString());
            parameters.Add("message", message.ToJson());
            parameters.Add("message_type", message.Type.ToString());
            return CallRestful(XinGeConfig.RESTAPI_PUSHSINGLEDEVICE, parameters);
        }
Example #5
0
 /// <summary>
 /// 推送到所有android设备
 /// </summary>
 /// <param name="msg"></param>
 /// <returns>返回值json反序列化后的类</returns>
 public Ret PushAllDevice(Message msg)
 {
     if (msg == null)
     {
         throw new ArgumentNullException("msg");
     }
     IDictionary<string, string> parameters = new Dictionary<string, string>();
     parameters.Add("expire_time", msg.ExpireTime.ToString());
     parameters.Add("message", msg.ToJson());
     parameters.Add("message_type", msg.Type.ToString());
     parameters.Add("send_time", msg.SendTime);
     parameters.Add("multi_pkg", msg.MultiPkg.ToString());
     if (msg.LoopInterval > 0 && msg.LoopTimes > 0)
     {
         parameters.Add("loop_interval", msg.LoopInterval.ToString());
         parameters.Add("loop_times", msg.LoopTimes.ToString());
     }
     return CallRestful(XinGeConfig.RESTAPI_PUSHALLDEVICE, parameters);
 }
Example #6
0
 /// <summary>
 /// 推送消息给多个账号(Android)
 /// </summary>
 /// <param name="accountList">目标账号,最大限制100</param>
 /// <param name="msg"></param>
 /// <returns>返回值json反序列化后的类</returns>
 public Ret PushAccountList(List<String> accountList, Message msg)
 {
     if (msg == null)
     {
         throw new ArgumentNullException("msg");
     }
     if (accountList.Count == 0)
     {
         throw new ArgumentNullException("accountList");
     }
     if (accountList.Count > 100)
     {
         throw new ArgumentOutOfRangeException("accountList");
     }
     IDictionary<string, string> parameters = new Dictionary<string, string>();
     parameters.Add("account_list", JsonConvert.SerializeObject(accountList));
     parameters.Add("multi_pkg", msg.MultiPkg.ToString());
     parameters.Add("expire_time", msg.ExpireTime.ToString());
     parameters.Add("message", msg.ToJson());
     parameters.Add("message_type", msg.Type.ToString());
     return CallRestful(XinGeConfig.RESTAPI_PUSHACCOUNTLIST, parameters);
 }
Example #7
0
 /// <summary>
 /// 创建大批量推送消息
 /// </summary>
 /// <param name="msg">Android通知和透传消息</param>
 /// <returns></returns>
 public Ret CreateMultiPush(Message msg)
 {
     IDictionary<string, string> parameters = new Dictionary<string, string>();
     parameters.Add("message", msg.ToJson());
     parameters.Add("message_type", msg.Type.ToString());
     parameters.Add("expire_time", msg.ExpireTime.ToString());
     parameters.Add("multi_pkg", msg.MultiPkg.ToString());
     return CallRestful(XinGeConfig.RESTAPI_CREATEMULTIPUSH, parameters);
 }
Example #8
0
        /// <summary>
        /// Android平台推送消息给标签选中设备
        /// </summary>
        /// <param name="accessId"></param>
        /// <param name="secretKey"></param>
        /// <param name="title"></param>
        /// <param name="content"></param>
        /// <param name="tag"></param>
        /// <returns></returns>
        public static Ret PushTagAndroid(long accessId, String secretKey, String title, String content, String tag)
        {
            var message = new Message()
            {
                Title = title,
                Type = Message.TYPE_NOTIFICATION,
                Content = content
            };

            XingeApp xinge = new XingeApp(accessId, secretKey);
            List<String> tagList = new List<String>();
            tagList.Add(tag);
            return xinge.PushTags(tagList, "OR", message);
        }
Example #9
0
        static void Main(string[] args)
        {
            XingeApp xinge = new XingeApp(2200123456, "4ab910b0e8af8b892e0b0bb31af68119");
            Message mandroid = new Message
            {
                Title = "title",
                Content = "content",
                Type = Message.TYPE_NOTIFICATION
            };
            MessageIOS mios=new MessageIOS
            {
                AlertStr = "这是一个简单的alert",
                Badge = 1,
                Sound = "beep.wave"
            };
            string deviceToken = "2e9742d51d1fb1e7d2a7897035cfb93da8f7d9c60e6259adfcf78b878bd956f8";
            //Push消息(包括通知和透传消息)给单个设备
            Ret ret = xinge.PushSingleDevice(deviceToken, mios, XinGeConfig.IOSENV_DEV);
            Console.WriteLine(ret.ret_code);
            xinge.PushSingleDevice("deviceToken", mandroid);
            //Push消息(包括通知和透传消息)给单个账户或别名
            xinge.PushSingleAccount("account", mandroid);
            xinge.PushSingleAccount("account", mios, XinGeConfig.IOSENV_DEV);
            //Push消息(包括通知和透传消息)给app的所有设备
            xinge.PushAllDevice(mandroid);
            xinge.PushAllDevice(mios, XinGeConfig.IOSENV_DEV);

            //创建大批量推送消息
            Ret pushRet = xinge.CreateMultiPush(mios, XinGeConfig.IOSENV_DEV);
            if (pushRet.ret_code == 0)
            {
                JObject json = pushRet.result;
                int pushId = json.GetValue("push_id").Value<int>();

                //Push消息给大批量账号
                xinge.PushAccountListMultiple(pushId, new List<string>() { "account1", "account2" });
                //Push消息给大批量设备
                xinge.PushDeviceListMultiple(pushId, new List<string>() { "token1", "token2" });
            }

            //查询群发消息发送状态
            xinge.QueryPushStatus(new List<string>() { "pushId1", "pushId1" });
            //查询应用覆盖的设备数
            xinge.QueryDeviceCount();
            //Push消息(包括通知和透传消息)给tags指定的设备
            xinge.PushTags(new List<string>() { "tag1", "tag2" }, "OR", mandroid);
            xinge.PushTags(new List<string>() { "tag1", "tag2" }, "OR", mios, XinGeConfig.IOSENV_DEV);
            //查询应用的Tags
            xinge.QueryTags(0, 100);
            //取消尚未触发的定时群发任务
            xinge.CancelTimingPush("pushId1");
            //批量设置标签
            var tags = new Dictionary<string, string>();
            tags.Add("tag1", "token1");
            xinge.BatchSetTag(tags);
            //批量删除标签
            xinge.BatchDelTag(tags);
            //查询应用某token设置的标签
            xinge.QueryTokenTags("deviceToken");
            //查询应用某标签关联的设备数量
            xinge.QueryTagTokenNum("tag");
        }