public X_Json_Send SendMessage(String msg, long chat_id) { Action_SendMessage param = new Action_SendMessage(); param.chat_id = chat_id; param.text = msg; dynamic feedback = new X_Json_Send(); MakeRequest(param, send_message_url, ref feedback); return(feedback); }
internal X_Json_Send EditeMessageText(string text, long chat_id, long message_id) { Action_EditMessageText param = new Action_EditMessageText(); param.chat_id = chat_id; param.message_id = message_id; param.text = text; dynamic feedback = new X_Json_Send(); MakeRequest(param, edit_message_text_url, ref feedback); return(feedback); }
internal X_Json_Send CreatInlineButton(string text, long chat_id, List <List <Action_SendMessage.inline_keyboard> > inline_keyboard) { Action_SendMessage sendMessage = new Action_SendMessage(); sendMessage.text = text; sendMessage.chat_id = chat_id; Action_SendMessage.ReplyMarkup replay_markup = new Action_SendMessage.ReplyMarkup(); replay_markup.inline_keyboard = inline_keyboard; sendMessage.reply_markup = replay_markup; dynamic feedback = new X_Json_Send(); MakeRequest(sendMessage, send_message_url, ref feedback); return(feedback); }
//public static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings //{ // ContractResolver = new NetTelegramBotApi.Util.JsonLowerCaseUnderscoreContractResolver(), // NullValueHandling = NullValueHandling.Ignore, //}; //protected T DeserializeMessage<T>(string json) //{ // return JsonConvert.DeserializeObject<T>(json, JsonSettings); //} //public IWebProxy WebProxy { get; set; } //protected virtual HttpClientHandler MakeHttpMessageHandler() //{ // return new HttpClientHandler // { // Proxy = WebProxy, // UseProxy = (WebProxy != null) // }; //} //public async Task<T> MakeRequestAsync<T>(RequestBase<T> request) //{ // using (var client = new HttpClient(MakeHttpMessageHandler())) // { // client.BaseAddress = getBaseAddress(); // using (var httpMessage = new HttpRequestMessage(HttpMethod.Get, request.MethodName)) // { // var postContent = request.CreateHttpContent(); // if (postContent != null) // { // httpMessage.Method = HttpMethod.Post; // httpMessage.Content = postContent; // } // using (var response = await client.SendAsync(httpMessage).ConfigureAwait(false)) // { // if ((int)response.StatusCode >= 500) // { // response.EnsureSuccessStatusCode(); // } // var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); // var result = DeserializeMessage<BotResponse<T>>(responseText); // if (!result.Ok || !response.IsSuccessStatusCode) // { // var exceptionMessage = "Request failed (status code {(int)response.StatusCode}): {result.Description}"; // throw new BotRequestException(exceptionMessage) // { // StatusCode = response.StatusCode, // ResponseBody = responseText, // Description = result.Description, // ErrorCode = result.ErrorCode, // Parameters = result.Parameters, // }; // } // var retVal = result.Result; // var forPostProcessing = retVal as IPostProcessingRequired; // if (forPostProcessing != null) // { // forPostProcessing.PostProcess(getToken()); // } // return retVal; // } // } // } //} public void MakeRequest(object obj, Uri url, ref dynamic output) { dynamic ret = null; if (output is X_Json_Send) { ret = new X_Json_Send(); } var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } try { var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); if (output != null) { ParseTelegramJson(result, ref ret); output = ret; } else { output = result; } } } catch (Exception ex) { } }
public void ParseTelegramJson(String json, ref dynamic output) { if (output is X_Json_Update) { output = new X_Json_Update(); } else if (output is X_Json_Me) { output = new X_Json_Me(); } else if (output is X_Json_Send) { output = new X_Json_Send(); } else if (output is X_Json_WebHook) { output = new X_Json_WebHook(); } else if (output is X_Json_CallBack) { output = new X_Json_CallBack(); } String error = ""; string result = json; try { if (!string.IsNullOrEmpty(result)) { try { dynamic deserializedMessages = null; if (output is X_Json_Update) { deserializedMessages = new X_Json_Update(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Update>(result); } else if (output is X_Json_Me) { deserializedMessages = new X_Json_Me(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Me>(result); } else if (output is X_Json_Send) { deserializedMessages = new X_Json_Send(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Send>(result); } else if (output is X_Json_WebHook) { deserializedMessages = new X_Json_WebHook(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_WebHook>(result); } else if (output is X_Json_CallBack) { deserializedMessages = new X_Json_CallBack(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_CallBack>(result); } if (deserializedMessages == null) { error = "E003: " + "Deserialized Messages are NULL"; output.ERROR = error; } else { if (output is X_Json_WebHook) { output = deserializedMessages; output.ERROR = "NaN"; } else if (output is X_Json_CallBack) { output = deserializedMessages; output.ERROR = "NaN"; } else { if (deserializedMessages.ok) { output = deserializedMessages; output.ERROR = "NaN"; } else { error = "E004: " + "Deserialized Messages are NOT OK!"; output.ERROR = error; } } } } catch (Exception ex) { error = "E005: " + ex.Message; output.ERROR = error; } } } catch (Exception ex) { error = "E006: " + ex.Message; output.ERROR = error; } }
/////////////////////////////////////////////////////////////////////////////////// private void WebService(String telegram_url, ref dynamic output) { if (output is X_Json_Update) { output = new X_Json_Update(); } else if (output is X_Json_Me) { output = new X_Json_Me(); } else if (output is X_Json_Send) { output = new X_Json_Send(); } else if (output is X_Json_WebHook) { output = new X_Json_WebHook(); } byte[] byteReceiveData = null; String error = ""; using (var wc = new System.Net.WebClient()) { try { byteReceiveData = wc.DownloadData(telegram_url); } catch (Exception ex) { error = "E001: " + ex.Message; output.ERROR = error; } } if (byteReceiveData != null) { Stream streamMemory = null; try { streamMemory = new MemoryStream(byteReceiveData); } catch (Exception ex) { error = "E002: " + ex.Message; output.ERROR = error; } if (streamMemory != null) { byte[] byteCopyData = new byte[byteReceiveData.Length]; for (int i = 0; i < byteReceiveData.Length; i++) { byteCopyData[i] = byteReceiveData[i]; } string result = System.Text.Encoding.UTF8.GetString(byteCopyData); try { if (!string.IsNullOrEmpty(result)) { try { dynamic deserializedMessages = null; if (output is X_Json_Update) { deserializedMessages = new X_Json_Update(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Update>(result); } else if (output is X_Json_Me) { deserializedMessages = new X_Json_Me(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Me>(result); } else if (output is X_Json_Send) { deserializedMessages = new X_Json_Send(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_Send>(result); } else if (output is X_Json_WebHook) { deserializedMessages = new X_Json_WebHook(); deserializedMessages = JsonConvert.DeserializeObject <X_Json_WebHook>(result); } if (deserializedMessages == null) { error = "E003: " + "Deserialized Messages are NULL"; output.ERROR = error; } else { if (deserializedMessages.ok) { output = deserializedMessages; output.ERROR = "NaN"; } else { error = "E004: " + "Deserialized Messages are NOT OK!"; output.ERROR = error; } } } catch (Exception ex) { error = "E005: " + ex.Message; output.ERROR = error; } } } catch (Exception ex) { error = "E006: " + ex.Message; output.ERROR = error; } } } else { error = "E007: " + "Received Data(byte) is NULL"; output.ERROR = error; } }