public Task <HttpResponseMessage> SendTxtMessage(TxtMessage txtMessage) { ResponseBase <IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> > response = new ResponseBase <IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> >(); try { IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> list = new List <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew>(); foreach (var item in txtMessage.ToWxIds) { var result = wechat.SendNewMsg(txtMessage.WxId, item, txtMessage.Content); list.Add(result.List.FirstOrDefault()); } response.Data = list; } catch (ExpiredException ex) { response.Success = false; response.Code = "401"; response.Message = ex.Message; } catch (Exception ex) { response.Success = false; response.Code = "500"; response.Message = ex.Message; } return(response.ToHttpResponseAsync()); }
/** * 发送广播消息方法(发送消息给一个应用下的所有注册用户,如用户未在线会对满足条件(绑定手机终端)的用户发送 Push 信息,单条消息最大 128k,会话类型为 SYSTEM。每小时只能发送 1 次,每天最多发送 3 次。) * * @param fromUserId:发送人用户 Id。(必传) * @param txtMessage:文本消息。 * @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知.(可选) * @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选) * @param os:针对操作系统发送 Push,值为 iOS 表示对 iOS 手机用户发送 Push ,为 Android 时表示对 Android 手机用户发送 Push ,如对所有用户发送 Push 信息,则不需要传 os 参数。(可选) * * @return CodeSuccessReslut **/ public CodeSuccessReslut broadcast(String fromUserId, TxtMessage message, String pushContent, String pushData, String os) { if (fromUserId == null) { throw new ArgumentNullException("Paramer 'fromUserId' is required"); } if (message.getType() == null) { throw new ArgumentNullException("Paramer 'ObjectName' is required"); } if (message.toString() == null) { throw new ArgumentNullException("Paramer 'Content' is required"); } String postStr = ""; postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId, Encoding.UTF8) + "&"; postStr += "objectName=" + HttpUtility.UrlEncode(message.getType(), Encoding.UTF8) + "&"; postStr += "content=" + HttpUtility.UrlEncode(message.toString(), Encoding.UTF8) + "&"; postStr += "pushContent=" + HttpUtility.UrlEncode(pushContent == null ? "" : pushContent, Encoding.UTF8) + "&"; postStr += "pushData=" + HttpUtility.UrlEncode(pushData == null ? "" : pushData, Encoding.UTF8) + "&"; postStr += "os=" + HttpUtility.UrlEncode(os == null ? "" : os, Encoding.UTF8) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return((CodeSuccessReslut)RongJsonUtil.JsonStringToObj <CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/broadcast.json", postStr, "application/x-www-form-urlencoded"))); }
//add message vao khung chat. void AddMessage(String s) { LstMessage.Items.Add(new ListViewItem() { Text = s }); TxtMessage.Clear(); }
public static void Send(string userID, TxtMessage msg) { GlobalHost.ConnectionManager .GetHubContext <IMHub>() .Clients .User(userID) .newMsg(msg); }
private void Page_Loaded(object sender, RoutedEventArgs e) { CmbRecipients.ItemsSource = _allUsers; if (_allUsers.Count > 0) { CmbRecipients.SelectedIndex = 0; } TxtMessage.Focus(); }
/// <summary> /// 发送系统消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM。每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。) /// </summary> /// <param name="fromUserId">发送人用户 Id</param> /// <param name="toUserId">接收用户Id,提供多个本参数可以实现向多用户发送系统消息,上限为 100 人。以逗号隔开</param> /// <param name="content">表示文本内容</param> /// <param name="extra">附加信息(如果开发者自己需要,可以自己在 App 端进行解析)</param> /// <returns></returns> private static string PublishSystem(string fromUserId, string toUserId, string content, string extra) { String[] messagepublishSystemToUserId = toUserId.Split(',', StringSplitOptions.RemoveEmptyEntries);; //接收用户Id TxtMessage messagepublishSystemTxtMessage = new TxtMessage(content, extra); CodeSuccessReslut messagepublishSystemResult = Rongcloud.message.PublishSystem(fromUserId, messagepublishSystemToUserId, messagepublishSystemTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", 1, 1); //Console.WriteLine("message.PublishSystem: " + messagepublishSystemResult.toString()); return("200"); }
//gui tin cho tat ca client. private void BtnSend_Click(object sender, EventArgs e) { foreach (Socket item in CLientList) { send(item); } // send(); AddMessage(TxtMessage.Text); TxtMessage.Clear(); }
public bool SendTxtMessage(ref string json, TxtMessage requestModel) { try { string requsetjson = JsonConvert.SerializeObject(requestModel); json = Tool.HttpHelper.HttpPost(AppConfig.BaseUrl + AppConfig.SendTxtMessage, requsetjson); Msg = json; return(true); } catch (Exception e) { return(false); } }
private void ChangerAmis() { LblBlockConversation.Text = null; TxtMessage.Clear(); currentAmis = listAmis[listViewContact.SelectedIndex]; txtEnDiscussionAvec.Text = DISCUSSION_START + currentAmis.firstName + " " + currentAmis.lastName; txtUsernameAmi.Text = USERNAME_SYMBOL + currentAmis.username; if (observable != null) { observable.Dispose(); } observable = coordinateur.SubscribeToStack(this, currentAmis.id); PnlConversation.Visibility = Visibility.Visible; listViewContact.UnselectAll(); }
/// <summary> /// 发送广播消息方法(发送消息给一个应用下的所有注册用户,如用户未在线会对满足条件(绑定手机终端)的用户发送 Push 信息,单条消息最大 128k,会话类型为 SYSTEM。每小时只能发送 1 次,每天最多发送 3 次。) /// </summary> /// <param name="fromUserId">发送人用户 Id(必传)</param> /// <param name="message">文本消息</param> /// <param name="pushContent">定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知.(可选)</param> /// <param name="pushData">针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选)</param> /// <param name="os">针对操作系统发送 Push,值为 iOS 表示对 iOS 手机用户发送 Push ,为 Android 时表示对 Android 手机用户发送 Push ,如对所有用户发送 Push 信息,则不需要传 os 参数。(可选)</param> public async Task <CodeSuccessReslut> Broadcast(string fromUserId, TxtMessage message, string pushContent, String pushData, String os) { if (fromUserId == null) { throw new ArgumentNullException(nameof(fromUserId)); } string postStr = ""; postStr += "fromUserId=" + WebUtility.UrlEncode(fromUserId == null ? "" : fromUserId) + "&"; postStr += "objectName=" + WebUtility.UrlEncode(message.TYPE) + "&"; postStr += "content=" + WebUtility.UrlEncode(message.ToString()) + "&"; postStr += "pushContent=" + WebUtility.UrlEncode(pushContent == null ? "" : pushContent) + "&"; postStr += "pushData=" + WebUtility.UrlEncode(pushData == null ? "" : pushData) + "&"; postStr += "os=" + WebUtility.UrlEncode(os == null ? "" : os) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return(JsonConvert.DeserializeObject <CodeSuccessReslut>(await RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/broadcast.json", postStr, "application/x-www-form-urlencoded"))); }
/** * 发送群组消息方法(以一个用户身份向群组发送消息,单条消息最大 128k.每秒钟最多发送 20 条消息,每次最多向 3 个群组发送,如:一次向 3 个群组发送消息,示为 3 条消息。) * * @param fromUserId:发送人用户 Id 。(必传) * @param toGroupId:接收群Id,提供多个本参数可以实现向多群发送消息,最多不超过 3 个群组。(必传) * @param txtMessage:发送消息内容(必传) * @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选) * @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选) * @param isPersisted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。(可选) * @param isCounted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行未读消息计数,0 表示为不计数、 1 表示为计数,默认为 1 计数,未读消息数增加 1。(可选) * @param isIncludeSender:发送用户自已是否接收消息,0 表示为不接收,1 表示为接收,默认为 0 不接收。(可选) * * @return CodeSuccessReslut **/ public CodeSuccessReslut publishGroup(String fromUserId, String[] toGroupId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender) { if (fromUserId == null) { throw new ArgumentNullException("Paramer 'fromUserId' is required"); } if (toGroupId == null) { throw new ArgumentNullException("Paramer 'toGroupId' is required"); } if (message.getType() == null) { throw new ArgumentNullException("Paramer 'ObjectName' is required"); } if (message.toString() == null) { throw new ArgumentNullException("Paramer 'Content' is required"); } String postStr = ""; postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId, Encoding.UTF8) + "&"; for (int i = 0; i < toGroupId.Length; i++) { String child = toGroupId[i]; postStr += "toGroupId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&"; } postStr += "objectName=" + HttpUtility.UrlEncode(message.getType(), Encoding.UTF8) + "&"; postStr += "content=" + HttpUtility.UrlEncode(message.toString(), Encoding.UTF8) + "&"; postStr += "pushContent=" + HttpUtility.UrlEncode(pushContent == null ? "" : pushContent, Encoding.UTF8) + "&"; postStr += "pushData=" + HttpUtility.UrlEncode(pushData == null ? "" : pushData, Encoding.UTF8) + "&"; postStr += "isPersisted=" + HttpUtility.UrlEncode(Convert.ToString(isPersisted) == null ? "" : Convert.ToString(isPersisted), Encoding.UTF8) + "&"; postStr += "isCounted=" + HttpUtility.UrlEncode(Convert.ToString(isCounted) == null ? "" : Convert.ToString(isCounted), Encoding.UTF8) + "&"; postStr += "isIncludeSender=" + HttpUtility.UrlEncode(Convert.ToString(isIncludeSender) == null ? "" : Convert.ToString(isIncludeSender), Encoding.UTF8) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return((CodeSuccessReslut)RongJsonUtil.JsonStringToObj <CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/group/publish.json", postStr, "application/x-www-form-urlencoded"))); }
/// <summary> /// 读取txt文件 /// </summary> /// <param name="s"></param> private void ShowTxt(string s) { string[] content = s.Split('\n'); List <string> line = new List <string>(); for (int i = 0; i < content.Length; i++) { line.Add(content[i]); } List <TxtMessage> txtMessages = new List <TxtMessage>(); TxtMessage currentLine = new TxtMessage(); for (int i = 0; i < line.Count; i++) { string key = line[i].Split(':')[0]; string value = line[i].Split(':')[1]; currentLine.key = key; currentLine.value = value; txtMessages.Add(currentLine); } Debug.Log(txtMessages[0].value); if (txtMessages[0].key.Equals("信息是否保密")) { if (txtMessages[0].value.Trim().Equals("是")) { this.s = "该用户信息保密,无法访问"; } else { this.s = ""; for (int i = 1; i < content.Length; i++) { this.s += content[i] + "\n"; } } } }
private void Btn_sendtext_Click(object sender, EventArgs e) { Facade.MessageFacade messageFacade = new Facade.MessageFacade(); Models.Request.TxtMessage fork = new TxtMessage(); fork.WxId = this.lb_Wxid.Text; fork.Content = this.tb_debug.Text; fork.ToWxIds = new List <string>() { this.tb_towxid.Text }; string json = string.Empty; if (!messageFacade.SendTxtMessage(ref json, fork)) { Log(messageFacade.Msg); return; } Log(json); }
public Error <IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> > SendTxtMessage([FromRoute, Required] string wxid, [FromBody, Required] TxtMessage msg) { IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> list = new List <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew>(); foreach (var item in msg.ToWxIds) { var result = _wechat.SendNewMsg(wxid, item, msg.Content); list.Add(result?.List?.FirstOrDefault()); } return(Error <IList <MMPro.MM.NewSendMsgRespone.NewMsgResponeNew> > .New() .WithCode(ErrorCode.OK) .WithData(list)); }
public void OutputMessage(string message) { TxtMessage.AppendText(message + Environment.NewLine + Environment.NewLine); }
/** * 发送聊天室消息方法(一个用户向聊天室发送消息,单条消息最大 128k。每秒钟限 100 次。) * * @param fromUserId:发送人用户 Id。(必传) * @param toChatroomId:接收聊天室Id,提供多个本参数可以实现向多个聊天室发送消息。(必传) * @param txtMessage:发送消息内容(必传) * * @return CodeSuccessReslut **/ public async Task <CodeSuccessReslut> publishChatroomAsync(String fromUserId, String[] toChatroomId, TxtMessage message) { if (fromUserId == null) { throw new ArgumentNullException("Paramer 'fromUserId' is required"); } if (toChatroomId == null) { throw new ArgumentNullException("Paramer 'toChatroomId' is required"); } if (message.getType() == null) { throw new ArgumentNullException("Paramer 'ObjectName' is required"); } if (message.toString() == null) { throw new ArgumentNullException("Paramer 'Content' is required"); } String postStr = ""; postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId) + "&"; for (int i = 0; i < toChatroomId.Length; i++) { String child = toChatroomId[i]; postStr += "toChatroomId=" + HttpUtility.UrlEncode(child) + "&"; } postStr += "objectName=" + HttpUtility.UrlEncode(message.getType()) + "&"; postStr += "content=" + HttpUtility.UrlEncode(message.toString()) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return((CodeSuccessReslut)RongJsonUtil.JsonStringToObj <CodeSuccessReslut>(await rongClient.ExecutePostAsync(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/chatroom/publish.json", postStr, "application/x-www-form-urlencoded"))); }
/** * 发送讨论组消息方法(以一个用户身份向讨论组发送消息,单条消息最大 128k,每秒钟最多发送 20 条消息.) * * @param fromUserId:发送人用户 Id。(必传) * @param toDiscussionId:接收讨论组 Id。(必传) * @param txtMessage:发送消息内容(必传) * @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选) * @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData.(可选) * @param isPersisted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息.(可选) * @param isCounted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行未读消息计数,0 表示为不计数、 1 表示为计数,默认为 1 计数,未读消息数增加 1。(可选) * * @return CodeSuccessReslut **/ public async Task <CodeSuccessReslut> publishDiscussionAsync(String fromUserId, String toDiscussionId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted) { if (fromUserId == null) { throw new ArgumentNullException("Paramer 'fromUserId' is required"); } if (toDiscussionId == null) { throw new ArgumentNullException("Paramer 'toDiscussionId' is required"); } if (message.getType() == null) { throw new ArgumentNullException("Paramer 'ObjectName' is required"); } if (message.toString() == null) { throw new ArgumentNullException("Paramer 'Content' is required"); } String postStr = ""; postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId) + "&"; postStr += "toDiscussionId=" + HttpUtility.UrlEncode(toDiscussionId == null ? "" : toDiscussionId) + "&"; postStr += "objectName=" + HttpUtility.UrlEncode(message.getType()) + "&"; postStr += "content=" + HttpUtility.UrlEncode(message.toString()) + "&"; postStr += "pushContent=" + HttpUtility.UrlEncode(pushContent == null ? "" : pushContent) + "&"; postStr += "pushData=" + HttpUtility.UrlEncode(pushData == null ? "" : pushData) + "&"; postStr += "isPersisted=" + HttpUtility.UrlEncode(Convert.ToString(isPersisted) == null ? "" : Convert.ToString(isPersisted)) + "&"; postStr += "isCounted=" + HttpUtility.UrlEncode(Convert.ToString(isCounted) == null ? "" : Convert.ToString(isCounted)) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return((CodeSuccessReslut)RongJsonUtil.JsonStringToObj <CodeSuccessReslut>(await rongClient.ExecutePostAsync(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/discussion/publish.json", postStr, "application/x-www-form-urlencoded"))); }
private void BtnSend_Click(object sender, RoutedEventArgs e) { userConnection.SendMessage(); TxtMessage.Clear(); }
static void Main(string[] args) { String appKey = "appKey"; String appSecret = "secret"; RongCloud rongcloud = RongCloud.GetInstance(appKey, appSecret); Console.WriteLine("**************** user ****************"); // 获取 Token 方法 TokenReslut usergetTokenResult = rongcloud.user.getToken("userId1", "username", "http://www.rongcloud.cn/images/logo.png"); Console.WriteLine("user.getToken: " + usergetTokenResult.toString()); Console.ReadKey(); // 刷新用户信息方法 CodeSuccessReslut userrefreshResult = rongcloud.user.refresh("userId1", "username", "http://www.rongcloud.cn/images/logo.png"); Console.WriteLine("user.refresh: " + userrefreshResult.toString()); Console.ReadKey(); // 检查用户在线状态 方法 CheckOnlineReslut usercheckOnlineResult = rongcloud.user.checkOnline("userId1"); Console.WriteLine("user.checkOnline: " + usercheckOnlineResult.toString()); Console.ReadKey(); // 封禁用户方法(每秒钟限 100 次) CodeSuccessReslut userblockResult = rongcloud.user.block("userId4", 10); Console.WriteLine("user.block: " + userblockResult.toString()); Console.ReadKey(); // 解除用户封禁方法(每秒钟限 100 次) CodeSuccessReslut userunBlockResult = rongcloud.user.unBlock("userId2"); Console.WriteLine("user.unBlock: " + userunBlockResult.toString()); Console.ReadKey(); // 获取被封禁用户方法(每秒钟限 100 次) QueryBlockUserReslut userqueryBlockResult = rongcloud.user.queryBlock(); Console.WriteLine("user.queryBlock: " + userqueryBlockResult.toString()); Console.ReadKey(); // 添加用户到黑名单方法(每秒钟限 100 次) CodeSuccessReslut useraddBlacklistResult = rongcloud.user.addBlacklist("userId1", "userId2"); Console.WriteLine("user.addBlacklist: " + useraddBlacklistResult.toString()); Console.ReadKey(); // 获取某用户的黑名单列表方法(每秒钟限 100 次) QueryBlacklistUserReslut userqueryBlacklistResult = rongcloud.user.queryBlacklist("userId1"); Console.WriteLine("user.queryBlacklist: " + userqueryBlacklistResult.toString()); Console.ReadKey(); // 从黑名单中移除用户方法(每秒钟限 100 次) CodeSuccessReslut userremoveBlacklistResult = rongcloud.user.removeBlacklist("userId1", "userId2"); Console.WriteLine("user.removeBlacklist: " + userremoveBlacklistResult.toString()); Console.ReadKey(); Console.WriteLine("**************** message ****************"); // 发送单聊消息方法(一个用户向另外一个用户发送消息,单条消息最大 128k。每分钟最多发送 6000 条信息,每次发送用户上限为 1000 人,如:一次发送 1000 人时,示为 1000 条消息。) String[] messagepublishPrivateToUserId = { "userId2", "userid3", "userId4" }; VoiceMessage messagepublishPrivateVoiceMessage = new VoiceMessage("hello", "helloExtra", 20L); CodeSuccessReslut messagepublishPrivateResult = rongcloud.message.publishPrivate("userId1", messagepublishPrivateToUserId, messagepublishPrivateVoiceMessage, "thisisapush", "{\"pushData\":\"hello\"}", "4", 0, 0, 0, 0); Console.WriteLine("message.publishPrivate: " + messagepublishPrivateResult.toString()); Console.ReadKey(); // 发送单聊模板消息方法(一个用户向多个用户发送不同消息内容,单条消息最大 128k。每分钟最多发送 6000 条信息,每次发送用户上限为 1000 人。) String str10 = File.ReadAllText("./TemplateMessage.json"); TemplateMessage publishTemplateTemplateMessage = RongJsonUtil.JsonStringToObj <TemplateMessage>(str10); CodeSuccessReslut messagepublishTemplateResult = rongcloud.message.publishTemplate(publishTemplateTemplateMessage); Console.WriteLine("message.publishTemplate: " + messagepublishTemplateResult.toString()); Console.ReadKey(); // 发送系统消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM。每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。) String[] messagepublishSystemToUserId = { "userId2", "userid3", "userId4" }; TxtMessage messagepublishSystemTxtMessage = new TxtMessage("hello", "helloExtra"); CodeSuccessReslut messagepublishSystemResult = rongcloud.message.PublishSystem("userId1", messagepublishSystemToUserId, messagepublishSystemTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", 0, 0); Console.WriteLine("message.PublishSystem: " + messagepublishSystemResult.toString()); Console.ReadKey(); // 发送自定义系统消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM。每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。) String[] messagepublishCusSystemToUserId = { "userId2", "userid3", "userId4" }; TxtMessage messagepublishCusSystemTxtMessage = new TxtMessage("hello", "自定义消息该字段被废弃,随便填", "youcusType"); CodeSuccessReslut messagepublishCusSystemResult = rongcloud.message.PublishSystem("userId1", messagepublishSystemToUserId, messagepublishSystemTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", 0, 0); Console.WriteLine("message.PublishSystem: " + messagepublishSystemResult.toString()); Console.ReadKey(); // 发送系统模板消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM.每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。) String str12 = File.ReadAllText("./TemplateMessage.json"); TemplateMessage publishSystemTemplateTemplateMessage = RongJsonUtil.JsonStringToObj <TemplateMessage>(str12); CodeSuccessReslut messagepublishSystemTemplateResult = rongcloud.message.publishSystemTemplate(publishSystemTemplateTemplateMessage); Console.WriteLine("message.publishSystemTemplate: " + messagepublishSystemTemplateResult.toString()); Console.ReadKey(); // 发送群组消息方法(以一个用户身份向群组发送消息,单条消息最大 128k.每秒钟最多发送 20 条消息,每次最多向 3 个群组发送,如:一次向 3 个群组发送消息,示为 3 条消息。) String[] messagepublishGroupToGroupId = { "groupId1", "groupId2", "groupId3" }; TxtMessage messagepublishGroupTxtMessage = new TxtMessage("hello", "helloExtra"); CodeSuccessReslut messagepublishGroupResult = rongcloud.message.publishGroup("userId", messagepublishGroupToGroupId, messagepublishGroupTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", 1, 1, 0); Console.WriteLine("message.publishGroup: " + messagepublishGroupResult.toString()); Console.ReadKey(); // 发送讨论组消息方法(以一个用户身份向讨论组发送消息,单条消息最大 128k,每秒钟最多发送 20 条消息.) TxtMessage messagepublishDiscussionTxtMessage = new TxtMessage("hello", "helloExtra"); CodeSuccessReslut messagepublishDiscussionResult = rongcloud.message.publishDiscussion("userId1", "discussionId1", messagepublishDiscussionTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", 1, 1, 0); Console.WriteLine("message.publishDiscussion: " + messagepublishDiscussionResult.toString()); Console.ReadKey(); // 发送聊天室消息方法(一个用户向聊天室发送消息,单条消息最大 128k。每秒钟限 100 次。) String[] messagepublishChatroomToChatroomId = { "ChatroomId1", "ChatroomId2", "ChatroomId3" }; TxtMessage messagepublishChatroomTxtMessage = new TxtMessage("hello", "helloExtra"); CodeSuccessReslut messagepublishChatroomResult = rongcloud.message.publishChatroom("userId1", messagepublishChatroomToChatroomId, messagepublishChatroomTxtMessage); Console.WriteLine("message.publishChatroom: " + messagepublishChatroomResult.toString()); Console.ReadKey(); // 发送广播消息方法(发送消息给一个应用下的所有注册用户,如用户未在线会对满足条件(绑定手机终端)的用户发送 Push 信息,单条消息最大 128k,会话类型为 SYSTEM。每小时只能发送 1 次,每天最多发送 3 次。) TxtMessage messagebroadcastTxtMessage = new TxtMessage("hello", "helloExtra"); CodeSuccessReslut messagebroadcastResult = rongcloud.message.broadcast("userId1", messagebroadcastTxtMessage, "thisisapush", "{\"pushData\":\"hello\"}", "iOS"); Console.WriteLine("message.broadcast: " + messagebroadcastResult.toString()); Console.ReadKey(); // 消息历史记录下载地址获取 方法消息历史记录下载地址获取方法。获取 APP 内指定某天某小时内的所有会话消息记录的下载地址。(目前支持二人会话、讨论组、群组、聊天室、客服、系统通知消息历史记录下载) HistoryMessageReslut messagegetHistoryResult = rongcloud.message.getHistory("2014010101"); Console.WriteLine("message.getHistory: " + messagegetHistoryResult.toString()); Console.ReadKey(); // 消息历史记录删除方法(删除 APP 内指定某天某小时内的所有会话消息记录。调用该接口返回成功后,date参数指定的某小时的消息记录文件将在随后的5-10分钟内被永久删除。) CodeSuccessReslut messagedeleteMessageResult = rongcloud.message.deleteMessage("2014010101"); Console.WriteLine("message.deleteMessage: " + messagedeleteMessageResult.toString()); Console.ReadKey(); Console.WriteLine("**************** wordfilter ****************"); // 添加敏感词方法(设置敏感词后,App 中用户不会收到含有敏感词的消息内容,默认最多设置 50 个敏感词。) CodeSuccessReslut wordfilteraddResult = rongcloud.wordfilter.add("money"); Console.WriteLine("wordfilter.add: " + wordfilteraddResult.toString()); Console.ReadKey(); // 查询敏感词列表方法 ListWordfilterReslut wordfiltergetListResult = rongcloud.wordfilter.getList(); Console.WriteLine("wordfilter.getList: " + wordfiltergetListResult.toString()); Console.ReadKey(); // 移除敏感词方法(从敏感词列表中,移除某一敏感词。) CodeSuccessReslut wordfilterdeleteResult = rongcloud.wordfilter.delete("money"); Console.WriteLine("wordfilter.delete: " + wordfilterdeleteResult.toString()); Console.ReadKey(); Console.WriteLine("**************** group ****************"); // 创建群组方法(创建群组,并将用户加入该群组,用户将可以收到该群的消息,同一用户最多可加入 500 个群,每个群最大至 3000 人,App 内的群组数量没有限制.注:其实本方法是加入群组方法 /group/join 的别名。) String[] groupcreateUserId = { "userId1", "userid2", "userId3" }; CodeSuccessReslut groupcreateResult = rongcloud.group.create(groupcreateUserId, "groupId1", "groupName1"); Console.WriteLine("group.create: " + groupcreateResult.toString()); Console.ReadKey(); // 同步用户所属群组方法(当第一次连接融云服务器时,需要向融云服务器提交 userId 对应的用户当前所加入的所有群组,此接口主要为防止应用中用户群信息同融云已知的用户所属群信息不同步。) GroupInfo[] groupsyncGroupInfo = { new GroupInfo("groupId1", "groupName1"), new GroupInfo("groupId2", "groupName2"), new GroupInfo("groupId3", "groupName3") }; CodeSuccessReslut groupsyncResult = rongcloud.group.sync("userId1", groupsyncGroupInfo); Console.WriteLine("group.sync: " + groupsyncResult.toString()); Console.ReadKey(); // 刷新群组信息方法 CodeSuccessReslut grouprefreshResult = rongcloud.group.refresh("groupId1", "newGroupName"); Console.WriteLine("group.refresh: " + grouprefreshResult.toString()); Console.ReadKey(); // 将用户加入指定群组,用户将可以收到该群的消息,同一用户最多可加入 500 个群,每个群最大至 3000 人。 String[] groupjoinUserId = { "userId2", "userid3", "userId4" }; CodeSuccessReslut groupjoinResult = rongcloud.group.join(groupjoinUserId, "groupId1", "TestGroup"); Console.WriteLine("group.join: " + groupjoinResult.toString()); Console.ReadKey(); // 查询群成员方法 GroupUserQueryReslut groupqueryUserResult = rongcloud.group.queryUser("groupId1"); Console.WriteLine("group.queryUser: "******"userId2", "userid3", "userId4" }; CodeSuccessReslut groupquitResult = rongcloud.group.quit(groupquitUserId, "TestGroup"); Console.WriteLine("group.quit: " + groupquitResult.toString()); Console.ReadKey(); // 添加禁言群成员方法(在 App 中如果不想让某一用户在群中发言时,可将此用户在群组中禁言,被禁言用户可以接收查看群组中用户聊天信息,但不能发送消息。) CodeSuccessReslut groupaddGagUserResult = rongcloud.group.addGagUser("userId1", "groupId1", "1"); Console.WriteLine("group.addGagUser: "******"groupId1"); Console.WriteLine("group.lisGagUser: "******"userId2", "userid3", "userId4" }; CodeSuccessReslut grouprollBackGagUserResult = rongcloud.group.rollBackGagUser(grouprollBackGagUserUserId, "groupId1"); Console.WriteLine("group.rollBackGagUser: "******"userId1", "groupId1"); Console.WriteLine("group.dismiss: " + groupdismissResult.toString()); Console.ReadKey(); Console.WriteLine("**************** chatroom ****************"); // 创建聊天室方法 ChatRoomInfo[] chatroomcreateChatRoomInfo = { new ChatRoomInfo("chatroomId1", "chatroomName1"), new ChatRoomInfo("chatroomId2", "chatroomName2"), new ChatRoomInfo("chatroomId3", "chatroomName3") }; CodeSuccessReslut chatroomcreateResult = rongcloud.chatroom.create(chatroomcreateChatRoomInfo); Console.WriteLine("chatroom.create: " + chatroomcreateResult.toString()); Console.ReadKey(); // 加入聊天室方法 String[] chatroomjoinUserId = { "userId2", "userid3", "userId4" }; CodeSuccessReslut chatroomjoinResult = rongcloud.chatroom.join(chatroomjoinUserId, "chatroomId1"); Console.WriteLine("chatroom.join: " + chatroomjoinResult.toString()); Console.ReadKey(); // 查询聊天室信息方法 String[] chatroomqueryChatroomId = { "chatroomId1", "chatroomId2", "chatroomId3" }; ChatroomQueryReslut chatroomqueryResult = rongcloud.chatroom.query(chatroomqueryChatroomId); Console.WriteLine("chatroom.query: " + chatroomqueryResult.toString()); Console.ReadKey(); // 查询聊天室内用户方法 ChatroomUserQueryReslut chatroomqueryUserResult = rongcloud.chatroom.queryUser("chatroomId1", "500", "2"); Console.WriteLine("chatroom.queryUser: "******"chatroomId1"); Console.WriteLine("chatroom.stopDistributionMessage: " + chatroomstopDistributionMessageResult.toString()); Console.ReadKey(); // 聊天室消息恢复分发方法 CodeSuccessReslut chatroomresumeDistributionMessageResult = rongcloud.chatroom.resumeDistributionMessage("chatroomId1"); Console.WriteLine("chatroom.resumeDistributionMessage: " + chatroomresumeDistributionMessageResult.toString()); Console.ReadKey(); // 添加禁言聊天室成员方法(在 App 中如果不想让某一用户在聊天室中发言时,可将此用户在聊天室中禁言,被禁言用户可以接收查看聊天室中用户聊天信息,但不能发送消息.) CodeSuccessReslut chatroomaddGagUserResult = rongcloud.chatroom.addGagUser("userId1", "chatroomId1", "1"); Console.WriteLine("chatroom.addGagUser: "******"chatroomId1"); Console.WriteLine("chatroom.ListGagUser: "******"userId1", "chatroomId1"); Console.WriteLine("chatroom.rollbackGagUser: "******"userId1", "chatroomId1", "1"); Console.WriteLine("chatroom.addBlockUser: "******"chatroomId1"); Console.WriteLine("chatroom.getListBlockUser: "******"userId1", "chatroomId1"); Console.WriteLine("chatroom.rollbackBlockUser: "******"RC:VcMsg", "RC:ImgTextMsg", "RC:ImgMsg" }; CodeSuccessReslut chatroomaddPriorityResult = rongcloud.chatroom.addPriority(chatroomaddPriorityObjectName); Console.WriteLine("chatroom.addPriority: " + chatroomaddPriorityResult.toString()); Console.ReadKey(); // 销毁聊天室方法 String[] chatroomdestroyChatroomId = { "chatroomId", "chatroomId1", "chatroomId2" }; CodeSuccessReslut chatroomdestroyResult = rongcloud.chatroom.destroy(chatroomdestroyChatroomId); Console.WriteLine("chatroom.destroy: " + chatroomdestroyResult.toString()); Console.ReadKey(); // 添加聊天室白名单成员方法 String[] chatroomaddWhiteListUserUserId = { "userId1", "userId2", "userId3", "userId4", "userId5" }; CodeSuccessReslut chatroomaddWhiteListUserResult = rongcloud.chatroom.addWhiteListUser("chatroomId", chatroomaddWhiteListUserUserId); Console.WriteLine("chatroom.addWhiteListUser: "******"**************** push ****************"); // 添加 Push 标签方法 String str47 = File.ReadAllText("./UserTag.json"); UserTag setUserPushTagUserTag = RongJsonUtil.JsonStringToObj <UserTag>(str47); CodeSuccessReslut pushsetUserPushTagResult = rongcloud.push.setUserPushTag(setUserPushTagUserTag); Console.WriteLine("push.setUserPushTag: " + pushsetUserPushTagResult.toString()); Console.ReadKey(); // 广播消息方法(fromuserid 和 message为null即为不落地的push) String str48 = File.ReadAllText("./PushMessage.json"); PushMessage broadcastPushPushMessage = RongJsonUtil.JsonStringToObj <PushMessage>(str48); CodeSuccessReslut pushbroadcastPushResult = rongcloud.push.broadcastPush(broadcastPushPushMessage); Console.WriteLine("push.broadcastPush: " + pushbroadcastPushResult.toString()); Console.ReadKey(); Console.WriteLine("**************** SMS ****************"); // 获取图片验证码方法 SMSImageCodeReslut sMSgetImageCodeResult = rongcloud.sms.getImageCode("app-key"); Console.WriteLine("SMS.getImageCode: " + sMSgetImageCodeResult.toString()); Console.ReadKey(); // 发送短信验证码方法。 SMSSendCodeReslut sMSsendCodeResult = rongcloud.sms.sendCode("13500000000", "dsfdsfd", "86", "1408706337", "1408706337"); Console.WriteLine("SMS.sendCode: " + sMSsendCodeResult.toString()); Console.ReadKey(); // 验证码验证方法 SMSVerifyCodeResult sMSverifyCodeResult = rongcloud.sms.verifyCode("2312312", "2312312"); Console.WriteLine("SMS.verifyCode: " + sMSverifyCodeResult.toString()); Console.ReadKey(); }
/// <summary> /// 发送系统消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM。每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。) /// </summary> /// <param name="fromUserId">发送人用户 Id。(必传)</param> /// <param name="toUserId">接收用户 Id,提供多个本参数可以实现向多人发送消息,上限为 1000 人。(必传)</param> /// <param name="message">发送消息内容(必传)</param> /// <param name="pushContent">如果为自定义消息,定义显示的 Push 内容,内容中定义标识通过 values 中设置的标识位内容进行替换.如消息类型为自定义不需要 Push 通知,则对应数组传空值即可。(可选)</param> /// <param name="pushData">针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。如不需要 Push 功能对应数组传空值即可。(可选)</param> /// <param name="isPersisted">当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。(可选)</param> /// <param name="isCounted">当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行未读消息计数,0 表示为不计数、 1 表示为计数,默认为 1 计数,未读消息数增加 1。(可选)</param> public async Task <CodeSuccessReslut> PublishSystem(string fromUserId, string[] toUserId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted) { if (string.IsNullOrEmpty(fromUserId)) { throw new ArgumentNullException(nameof(fromUserId)); } if (toUserId == null) { throw new ArgumentNullException(nameof(toUserId)); } string postStr = ""; postStr += "fromUserId=" + WebUtility.UrlEncode(fromUserId == null ? "" : fromUserId) + "&"; for (int i = 0; i < toUserId.Length; i++) { string child = toUserId[i]; postStr += "toUserId=" + WebUtility.UrlEncode(child) + "&"; } postStr += "objectName=" + WebUtility.UrlEncode(message.TYPE) + "&"; postStr += "content=" + WebUtility.UrlEncode(message.ToString()) + "&"; postStr += "pushContent=" + WebUtility.UrlEncode(pushContent == null ? "" : pushContent) + "&"; postStr += "pushData=" + WebUtility.UrlEncode(pushData == null ? "" : pushData) + "&"; postStr += "isPersisted=" + WebUtility.UrlEncode(Convert.ToString(isPersisted) == null ? "" : Convert.ToString(isPersisted)) + "&"; postStr += "isCounted=" + WebUtility.UrlEncode(Convert.ToString(isCounted) == null ? "" : Convert.ToString(isCounted)) + "&"; postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return(JsonConvert.DeserializeObject <CodeSuccessReslut>(await RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/system/publish.json", postStr, "application/x-www-form-urlencoded"))); }
internal void AddNewRequest() { try { ExcelLib.PopulateInCollection(Base.ExcelPath, "TenantMyRequest"); //IWebElement MyReqPage = Driver.driver.FindElement(By.XPath(".//*[@id='RequestPage']/div[1]/div/h3")); //Validate navigation to "Rental Request Form" page bool bPage = Driver.driver.PageSource.Contains("RequestPage"); if (bPage) { Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Navigated to Rental Request Form"); } else { Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Fail, "Page details not verified"); } //Select 3rd option from the Drop down list IWebElement SelectPropertyDDL = Driver.driver.FindElement(By.XPath("html/body/div/section/div/div[2]/form/fieldset/div[1]/div/div/select")); var selectElement = new SelectElement(SelectPropertyDDL); selectElement.SelectByIndex(2); //Validate Property Detail is reflecting the selction of Property string PropertyDetail = Driver.driver.FindElement(By.XPath("html/body/div/section/div/div[2]/form/fieldset/div[2]/div[2]/div[1]/div/span")).Text; bool bRet = PropertyDetail.Contains("580 Great South Road Papakura"); if (!bRet) { Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Fail, "Property Details doesn't match"); } //DDLSelectProp.Click(); IWebElement JobReqType = Driver.driver.FindElement(By.Id("jobRequestType")); var jSelectElement = new SelectElement(JobReqType); jSelectElement.SelectByIndex(1); //Validate if TextField under Message is visible and fill the data from excel sheet bool bEnable = TxtMessage.Enabled; if (bEnable) { TxtMessage.SendKeys(ExcelLib.ReadData(2, "Message")); Driver.wait(3); BtnSubmit.Click(); //verify the PopMessage text //string AlertMsg = Driver.driver.SwitchTo().Alert().Text; //if (AlertMsg == "Item added successful") //{ // Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "New request submitted"); //} //else { Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Fail, AlertMsg); } } else { Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Fail, "Message box not enabled"); } } catch (Exception ex) { string exceptionMessage = ex.Message; } }
private void BtnDownloadTRMM_Click(object sender, EventArgs e) { string driveLetter; string ProjectFolderName; if (TxtProjectName.Text == "") { ProjectFolderName = "TRMMData_" + DateTime.Now.ToString("yyyyMMddTHHmmss"); } ProjectFolderName = TxtProjectName.Text; Process cmd = new Process(); cmd.StartInfo.FileName = "cmd.exe"; cmd.StartInfo.RedirectStandardInput = true; cmd.StartInfo.RedirectStandardOutput = true; cmd.StartInfo.CreateNoWindow = true; cmd.StartInfo.UseShellExecute = false; cmd.Start(); driveLetter = Path.GetPathRoot(Environment.CurrentDirectory); string CopyCmd = "copy wget.exe " + driveLetter; cmd.StandardInput.WriteLine("mkdir " + driveLetter + ProjectFolderName); //make project folder cmd.StandardInput.WriteLine(CopyCmd); //copy wget.exe from degug folder of program to root directory cmd.StandardInput.WriteLine("cd\\"); //root directory cmd.StandardInput.WriteLine("cd " + ProjectFolderName); //go to project folder //MessageBox.Show(driveLetter); cmd.StandardInput.WriteLine("mkdir Cookies Data"); //make cookies and data folder in project folder cmd.StandardInput.WriteLine("cd Cookies"); //go to cookies folder cmd.StandardInput.WriteLine("NUL > .urs_cookies"); //create cookies file in cookies folder string Cookies_loc = driveLetter + ProjectFolderName + "\\Cookies\\.urs_cookies"; //MessageBox.Show(loc); //string downloadTrmmData = "wget --load-cookies " + Cookies_loc + " --save-cookies " + Cookies_loc + " --auth-no-challenge=on --keep-session-cookies --user=username --password=password --content-disposition -i " + textBox1.Text; string usrnm = TxtUsername.Text; string passwrd = TxtPassword.Text; string downloadTrmmData = "wget --load-cookies " + Cookies_loc + " --save-cookies " + Cookies_loc + " --auth-no-challenge=on --keep-session-cookies --user="******" --password="******" --content-disposition -i " + TxtDownloadLinkList.Text; //MessageBox.Show(downloadTrmmData); cmd.StandardInput.WriteLine("cd\\"); //root directory //cmd.StandardInput.WriteLine("cd " + ProjectFolderName); //go to project folder string cmd3_1 = "copy wget.exe " + driveLetter + ProjectFolderName + "\\Data"; string DeleteCmd = "del wget.exe"; //MessageBox.Show(cmd3_1); cmd.StandardInput.WriteLine(cmd3_1); //copy wget to Data Folder cmd.StandardInput.WriteLine(DeleteCmd); //copy wget to Data Folder cmd.StandardInput.WriteLine("cd " + ProjectFolderName + "\\Data"); //go to Data Folder Application.DoEvents(); TxtMessage.AppendText(DateTime.Now.ToString("hh:mm:ss") + " ==> Please Wait....Downloading TRMM Data....May take several minutes depending on data and Internet Speed"); TxtMessage.AppendText(Environment.NewLine); cmd.StandardInput.WriteLine(downloadTrmmData); //download trmmData //driveLetter = Path.GetPathRoot(Environment.CurrentDirectory); //MessageBox.Show(driveLetter); cmd.StandardInput.Flush(); cmd.StandardInput.Close(); cmd.WaitForExit(); Console.WriteLine(cmd.StandardOutput.ReadToEnd()); //MessageBox.Show("Completed"); DownloadedFolderPath = driveLetter + ProjectFolderName + "\\Data"; TxtMessage.AppendText(DateTime.Now.ToString("hh:mm:ss") + " ==> Download Completed!"); TxtMessage.AppendText(Environment.NewLine); TxtMessage.AppendText(DateTime.Now.ToString("hh:mm:ss") + " ==> Downloaded Folder : " + driveLetter + ProjectFolderName + "\\Data"); TxtMessage.AppendText(Environment.NewLine); TxtMessage.AppendText(DateTime.Now.ToString("hh:mm:ss") + " ==> Click open to open the folder containing downloaded data"); TxtMessage.AppendText(Environment.NewLine); }