Пишу бота на C#, но не могу понять как можно обрабатывать входящие сообщения. В апи есть метод
getUpdates который возвращает json ответ.
Покажите пожалуйста на простом примере как я могу обработать входящее сообщение так, чтобы я смог отослать ответ.
Допустим: я посылаю боту комманду /hello, в приложении я обрабатываю команду и отсылаю ответ "привет"
Вот так получаю сообщение (но там опять же без проверки на offset
private void Form1_Load(object sender, EventArgs e)
{
List<result> gg = GetUpdates();
foreach (result rs in gg)
listBox1.Items.Add(rs.message.chat.id+": "+ rs.message.chat.first_name+": "+rs.message.text);
}
public static List<result> GetUpdates()
{
WebRequest req = WebRequest.Create("https://api.telegram.org/bot"+token+"/getUpdates");
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string s = sr.ReadToEnd();
sr.Close();
var jobject = Newtonsoft.Json.Linq.JObject.Parse(s);
mydata gg= JsonConvert.DeserializeObject<mydata>(jobject.ToString());
List<result> results = new List<result>();
foreach (result rs in gg.result)
{
results.Add(rs);
}
return results;
}
public static void SendMessage(string chat_id, string message)
{
WebRequest req = WebRequest.Create("https://api.telegram.org/bot"+token+"/sendMessage?chat_id=" + chat_id + "&text=" + message);
req.GetResponse();
req.Abort();
}
}
public class mydata
{
public result[] result;
}
public class result
{
public int update_id { get; set; }
public message message { get; set; }
}
public class message
{
public int message_id { get; set; }
public message_from from { get; set; }
public message_chat chat { get; set; }
public int date { get; set; }
public string text { get; set; }
}
public class message_from
{
public int ind { get; set; }
public string first_name { get; set; }
public string username { get; set; }
}
public class message_chat
{
public int id { get; set; }
public string first_name { get; set; }
public string username { get; set; }
}