/// <summary> /// 阿里云推送 /// </summary> /// <param name="request"></param> /// <param name="message"></param> /// <param name="receivers"></param> private void Push(NotifyMessageRequest request, Tgnet.FootChat.Push.MessageModel message, long[] receivers, bool remind, NotifyTypes notifyType) { ExceptionHelper.ThrowIfNull(message, "message"); receivers = (receivers ?? Enumerable.Empty <long>()).Where(id => id > 0).Distinct().ToArray(); PushService.PushSetting setting = null; if (request.MessageType != MessageType.Online) { setting = new PushService.PushSetting { ExpireTime = TimeSpan.FromDays(1), StoreOffline = true, NotifyType = (PushService.PushSettingNotifyTypes)notifyType.To <byte>(), }; } List <PushService.TargetsAppKinds> apps = new List <PushService.TargetsAppKinds>() { PushService.TargetsAppKinds.FootChatAndroid, PushService.TargetsAppKinds.FootChatiOS }; _PushManager.PushJsonMessage(new PushService.PushJsonMessageRequest { Content = message.Content, ContentType = message.ContentType, Extensions = message.Extensions, MessageId = message.MessageId, Sender = message.Sender, SenderName = message.SenderName, SessionId = message.SessionId, SessionType = message.SessionType, Timestamp = message.Timestamp, Remind = WrapperRemind(message, remind) }, new PushService.Targets { Uids = receivers, Apps = apps.ToArray(), Testing = false, }, setting); }
public void PushRemind(PushRemindRequest remind, long[] receivers, NotifyTypes?notifyType = null) { ExceptionHelper.ThrowIfNull(remind, "remind"); receivers = (receivers ?? Enumerable.Empty <long>()).Where(id => id > 0).Distinct().ToArray(); PushService.PushSetting setting = new PushService.PushSetting { NotifyType = notifyType == null ? PushService.PushSettingNotifyTypes.SoundAndVibration : (PushService.PushSettingNotifyTypes)notifyType.To <byte>() }; if (remind.MessageType != MessageType.Online) { setting.ExpireTime = TimeSpan.FromDays(1); setting.StoreOffline = true; } var extensions = remind.Extensions ?? new Dictionary <string, string>(); if (!String.IsNullOrWhiteSpace(remind.URL)) { extensions["url"] = remind.URL.Trim(); } List <PushService.TargetsAppKinds> apps = new List <PushService.TargetsAppKinds>() { PushService.TargetsAppKinds.FootChatAndroid, PushService.TargetsAppKinds.FootChatiOS }; _PushManager.PushRemind(new PushService.PushRemindRequest { Accumulate = remind.Accumulate, Body = remind.Body, Extensions = extensions, Title = remind.Title, AndroidPopupActivity = ANDROIDPOPUPACTIVITY, }, new PushService.Targets { Uids = receivers, Apps = apps.ToArray(), }, setting); }
public void PushRemind(PushService.PushRemindRequest request, PushService.Targets targets, PushService.PushSetting setting) { ExceptionHelper.ThrowIfNull(request, "request"); using (var provider = _PushServiceChannelProvider.NewChannelProvider()) { provider.Channel.PushRemind(new OAuth2ClientIdentity(), request, targets, setting); } }