private static void DemoSendRoomText() { try { var Result = AirCatApi.SendRoomText("", RoomWxid, DemoTextMessage); Console.WriteLine(Result.ToString()); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { AirCatApi airCatApi = new AirCatApi(); airCatApi.AirWebApiIP = AirWebApiIP; airCatApi.AirWebApiPort = AirWebApiPort; airCatApi.ServicePort = LocalManagerPort; airCatApi.AirWebApiToken = ShareToken; Type type = airCatApi.GetType(); MethodInfo[] methods = type.GetMethods(); List <String> CommandList = new List <string>(); foreach (MethodInfo method in methods) { if (method.IsStatic == false) { continue; } if (method.ReturnParameter.ParameterType.Name != "String") { continue; } CommandList.Add(method.Name); } CommandList.Sort(); this.CobmoxCommands.ItemsSource = CommandList; airCatApi.OnDebug += AirCatApi_OnDebug; airCatApi.ServiceStart(); ServerIP.Text = AirWebApiIP; ServerPort.Text = AirWebApiPort.ToString(); ManagerIP.Text = "127.0.0.1"; ManagerPort.Text = LocalManagerPort.ToString(); Token.Text = ShareToken; TestRobotWxid.Text = DefaultRobotWxid; TestRoomWxid.Text = DefaultRoomWxid; TestContractWxid.Text = DefaultContractWxid; new Thread(() => { this.Dispatcher.Invoke(new Action(() => { CobmoxCommands.SelectedIndex = CobmoxCommands.Items.IndexOf("GetRobotList"); })); }).Start(); }
/// <summary> /// 获取微信端信息 /// </summary> private static void DemoGetServerStatus() { try { var Result = AirCatApi.GetServerStatusData(); Console.WriteLine(Result.ToString()); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
static void Main(string[] args) { //启动本地Web服务器 AirCatApi airCatApi = new AirCatApi(); airCatApi.OnDebug += AirCatApi_OnDebug; airCatApi.ServiceStart(); DemoGetServerStatus(); Thread.Sleep(2000); DemoSendContractText(); Thread.Sleep(2000); DemoSendRoomText(); Thread.Sleep(2000); Console.ReadLine(); }
private static void CheckContract() { Console.WriteLine("检测指定的联系人......"); var contactList = AirCatApi.GetContactListData(RobotWxid, "", ""); foreach (var contact in contactList.Members) { Console.WriteLine(contact.Wxid + "\t" + contact.WxName); if (ContractWxid == contact.Wxid) { Console.WriteLine("OK!"); ContractFound = true; //break; } } if (ContractFound == false) { Console.WriteLine("指定的联系人未找到,程序无法继续执行!"); Console.ReadLine(); return; } }
static void CheckRobot() { Console.WriteLine("检测在线机器人......"); var RobotList = AirCatApi.GetRobotListData(); foreach (var item in RobotList.Robots) { //Console.WriteLine(item.RobotWxid + "\t" + item.LoginTime + "\t" + item.RobotWxName); if (RobotWxid == item.RobotWxid) { Console.WriteLine("OK!"); RobotFound = true; break; } } if (RobotFound == false) { Console.WriteLine("指定的机器人未找到,程序无法继续执行!"); Console.ReadLine(); return; } }
private static void CheckRoom() { Console.WriteLine("检测指定的群......"); var roomList = AirCatApi.GetRoomListData(RobotWxid, "", ""); foreach (var room in roomList.Rooms) { Console.WriteLine(room.RoomWxid + "\t" + room.RoomName); if (RoomWxid == room.RoomWxid) { Console.WriteLine("OK!"); RoomFound = true; //break; } } if (RoomFound == false) { Console.WriteLine("指定的群未找到,程序无法继续执行!"); Console.ReadLine(); return; } }
private void CommandRun(Boolean ClassData) { serverMessage.Text = ""; AirCatApi airCatApi = new AirCatApi(); Type type = airCatApi.GetType(); MethodInfo[] methods = type.GetMethods(); String CommnadRun = CobmoxCommands.SelectedValue.ToString(); if (ClassData == true) { CommnadRun += "Data"; } List <String> CommandList = new List <string>(); foreach (MethodInfo method in methods) { if (method.IsStatic == false) { continue; } //if (method.ReturnParameter.ParameterType.Name != "String") continue; if (method.Name == CommnadRun) { ParameterInfo[] parameterInfos = method.GetParameters(); object[] obj = new object[parameterInfos.Length]; for (int j = 0; j < parameterInfos.Length; j++) { TextBox textBox = this.FindName(parameterInfos[j].Name) as TextBox; if (textBox != null) { obj[j] = textBox.Text; } else { ComboBox comboBox = this.FindName(parameterInfos[j].Name) as ComboBox; if (comboBox != null) { foreach (ComboBoxItem item in comboBox.Items) { if (item.IsSelected == true) { obj[j] = item.Content.ToString(); break; } } } } } object message = ""; try { message = method.Invoke(airCatApi, obj); String json = message.ToString(); if (json == "") { return; } if (json.Substring(0, 1) == "[") { serverMessage.Text = JArray.Parse(message.ToString()).ToString(Newtonsoft.Json.Formatting.Indented); } else { serverMessage.Text = JObject.Parse(message.ToString()).ToString(Newtonsoft.Json.Formatting.Indented); } //获取登陆微信列表 if (CommnadRun == "GetRobotList") { robotWxidList.Clear(); JObject jObject = JObject.Parse(message.ToString()); JArray jArray = JArray.Parse(jObject["Robots"].ToString()); foreach (var item in jArray) { JObject j = JObject.Parse(item.ToString()); robotWxidList.Add(j["RobotWxid"].ToString()); } } //获取群列表 if (CommnadRun == "GetRoomList") { JObject jObject = JObject.Parse(message.ToString()); string robotWxid = jObject["RobotWxid"].ToString(); //查找群列表中的数据 List <String> rooms = new List <string>(); foreach (var item in roomList) { if (item.Key == robotWxid) { rooms = item.Value; break; } } JArray jArray = JArray.Parse(jObject["Rooms"].ToString()); foreach (var item in jArray) { JObject j = JObject.Parse(item.ToString()); string roomWxid = j["RoomWxid"].ToString(); Boolean roomExist = false; foreach (var room in rooms) { if (room == roomWxid) { roomExist = true; break; } } if (roomExist == false) { rooms.Add(roomWxid); } } roomList[robotWxid] = rooms; } } catch (Exception ex) { serverMessage.Text = message.ToString(); MessageBox.Show(ex.Message + ex.StackTrace); } return; } } }
private void CobmoxCommands_SelectionChanged(object sender, SelectionChangedEventArgs e) { CommandParams.Children.Clear(); CommandParams.Orientation = Orientation.Vertical; ComboBox comboBox = (ComboBox)sender; //检查参数 AirCatApi airCatApi = new AirCatApi(); Type type = airCatApi.GetType(); MethodInfo[] methods = type.GetMethods(); foreach (MethodInfo method in methods) { if (method.IsStatic == false) { continue; } if (method.ReturnParameter.ParameterType.Name != "String") { continue; } //if (method.ReturnParameter.) continue; if (method.Name == comboBox.SelectedValue.ToString()) { Grid grid = new Grid(); // grid.ShowGridLines = true; ColumnDefinition columnDefinition1 = new ColumnDefinition(); columnDefinition1.Width = GridLength.Auto; ColumnDefinition columnDefinition2 = new ColumnDefinition(); grid.ColumnDefinitions.Add(columnDefinition1); grid.ColumnDefinitions.Add(columnDefinition2); TextBlock_ApiComments.Text = ("名称:" + method.Name + ((ApiCommentAttribute)method.GetCustomAttribute(typeof(ApiCommentAttribute))).ApiComment).Trim(); TextBlock_ApiComments.Visibility = Visibility.Visible; ParameterInfo[] parameterInfos = method.GetParameters(); for (int i = 0; i < parameterInfos.Length; i++) { RowDefinition rowDefinition = new RowDefinition(); grid.RowDefinitions.Add(rowDefinition); } for (int i = 0; i < parameterInfos.Length; i++) { TextBlock textBlock = new TextBlock(); textBlock.Text = parameterInfos[i].Name; textBlock.Padding = new Thickness(3); textBlock.Margin = new Thickness(3); grid.Children.Add(textBlock); Grid.SetRow(textBlock, i); Grid.SetColumn(textBlock, 0); ComboBox comboBox2 = this.FindName(parameterInfos[i].Name) as ComboBox; if (comboBox2 != null) { CommandParams.UnregisterName(parameterInfos[i].Name); } TextBox textBox2 = this.FindName(parameterInfos[i].Name) as TextBox; if (textBox2 != null) { CommandParams.UnregisterName(parameterInfos[i].Name); } if (parameterInfos[i].Name == "FileName") { StackPanel stackPanel = new StackPanel(); TextBox textBox = new TextBox(); textBox.Name = parameterInfos[i].Name; textBox.Padding = new Thickness(3); textBox.Margin = new Thickness(3); textBox.IsReadOnly = true; CommandParams.RegisterName(parameterInfos[i].Name, textBox); stackPanel.Children.Add(textBox); Button button = new Button(); button.Content = "浏览"; button.Click += Button_Click1; button.Tag = parameterInfos[i].Name; stackPanel.Children.Add(button); grid.Children.Add(stackPanel); Grid.SetRow(stackPanel, i); Grid.SetColumn(stackPanel, 1); } else { if (parameterInfos[i].Name == "RobotWxid") { //登陆的用户列表 ComboBox comboBox1 = new ComboBox(); comboBox1.Name = parameterInfos[i].Name; comboBox1.Padding = new Thickness(3); comboBox1.Margin = new Thickness(3); comboBox1.SelectionChanged += ComboBox1_SelectionChanged; comboBox1.SelectedIndex = 0; foreach (String item in robotWxidList) { ComboBoxItem comboBoxItem = new ComboBoxItem(); comboBoxItem.Content = item; if (selectedRobotWxid == item) { comboBoxItem.IsSelected = true; } comboBox1.Items.Add(comboBoxItem); } grid.Children.Add(comboBox1); Grid.SetRow(comboBox1, i); Grid.SetColumn(comboBox1, 1); CommandParams.RegisterName(parameterInfos[i].Name, comboBox1); } //else if (parameterInfos[i].Name == "GetRoomList") //{ //} else { TextBox textBox = new TextBox(); textBox.Name = parameterInfos[i].Name; textBox.Padding = new Thickness(3); textBox.Margin = new Thickness(3); if (parameterInfos[i].Name == "RoomWxid") { textBox.Text = DefaultRoomWxid; } else if (parameterInfos[i].Name == "Wxid") { textBox.Text = DefaultContractWxid; } else if (parameterInfos[i].Name == "AtWxid") { textBox.Text = DefaultContractWxid; } grid.Children.Add(textBox); Grid.SetRow(textBox, i); Grid.SetColumn(textBox, 1); CommandParams.RegisterName(parameterInfos[i].Name, textBox); } } } CommandParams.Children.Add(grid); } } }
private static void SendContractMsg() { Console.WriteLine("加载要发送的消息......"); LoadMsg(); Console.WriteLine("开始发送消息......"); foreach (var item in msgList) { //发送消息之前,先延时(秒); Console.WriteLine("延时:" + item.Item2); int currentLineCursor = Console.CursorTop; //发送的时间 DateTime sendTime = DateTime.Now.AddSeconds(item.Item2); while (sendTime > DateTime.Now) { Console.Write((sendTime - DateTime.Now).Seconds.ToString()); Thread.Sleep(100); Console.SetCursorPosition(0, Console.CursorTop); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, currentLineCursor); } String result = ""; switch (item.Item3) { case ENUM_MSG_TYPE.TEXT: Console.WriteLine("发送文本消息:" + item.Item1.ToString()); AirCatApi.SendContractText(RobotWxid, ContractWxid, item.Item1.ToString()); break; case ENUM_MSG_TYPE.IMAG: Console.WriteLine("发送图片消息:" + item.Item1.ToString()); AirCatApi.SendContractImage(RobotWxid, ContractWxid, item.Item1.ToString()); break; case ENUM_MSG_TYPE.LINK: Console.WriteLine("发送链接消息:" + item.Item1.ToString()); JObject jObject = (JObject)(item.Item1); String title = jObject["Title"].ToString(); String text = jObject["Text"].ToString(); String targetUrl = jObject["TargetUrl"].ToString(); String imgUrl = jObject["ImgUrl"].ToString(); String icoUrl = jObject["IcoUrl"].ToString(); AirCatApi.SendContractLink(RobotWxid, ContractWxid, title, text, targetUrl, imgUrl, icoUrl); break; case ENUM_MSG_TYPE.FILE: Console.WriteLine("发送文件:" + item.Item1.ToString()); AirCatApi.SendContractFile(RobotWxid, ContractWxid, item.Item1.ToString()); break; case ENUM_MSG_TYPE.EMOJI: Console.WriteLine("发送文件:" + item.Item1.ToString()); AirCatApi.SendContractEmoji(RobotWxid, ContractWxid, item.Item1.ToString()); break; case ENUM_MSG_TYPE.VEDIO: Console.WriteLine("发送文件:" + item.Item1.ToString()); result = AirCatApi.SendContractVideo(RobotWxid, ContractWxid, item.Item1.ToString()); break; default: break; } Console.WriteLine(result); } Console.WriteLine("发送完毕!"); }