2017-06-02 107 views
0

这是我的代码,我试图毁掉消息框显示后,连接到一个电报BOT如何获取更新和回复电报机器人?

namespace telegramUpdate 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     TelegramBotClient bot = new TelegramBotClient("xxxxxxxxx"); 
     int offset = 23; 
     Update temp = null; 
     private void Form1_Load(object sender, EventArgs e) 
     { 
      backgroundWorker1.RunWorkerAsync(); 
     } 

     private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
     { 
      while (true) 
      { 
       try 
       { 
        var m = Task.Run(async()=> bot.GetUpdatesAsync(offset,50)).Result; 
        foreach (var x in m.Result) 
        { 
         switch (x.Type) 
         { 
          case UpdateType.MessageUpdate: 
           temp = x; 
           backgroundWorker1.ReportProgress(0); 
           bot.SendTextMessageAsync(x.Message.Chat.Id, ":)").ConfigureAwait(false); 
           break; 
         } 
         offset = x.Id+1; 
        } 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 

       } 
      } 
     } 

     private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
     { 
      backgroundWorker1.RunWorkerAsync(); 
     } 

     private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
     { 
      label1.Text = temp.Message.From.FirstName; 
     } 
    } 
} 

“发生一个或多个错误。”问题是什么?电报机器人应回复“:)”,但它不。我找不到m是否收到任何更新。

+0

我有一个机器人,我想在机器人创建chating模块,所以这是可能的?可以ypu请帮助我 – Edit

+0

请更多前飞机关于您的问题... –

回答

0

试试这个:

bot.SendTextMessageAsync(x.Message.Chat.Id, ":)").GetAwaiter().GetResult(); 

你没有执行这个任务。只是它

+0

你应该给更多的细节,而不仅仅是一条线码。解释如何解决这个问题。看看https://stackoverflow.com/help/how-to-answer。 –