2016-12-11 6 views
1

Ich benutze C# für die Programmierung Telegram Bot, aber wenn ich Webhook einstellen kann ich nicht füllen Update-Objekt? Ich benutze Aschx-Handler.Wie bekomme ich ein Update-Objekt mit Webhook in C#?

public void ProcessRequest(HttpContext context) 
    { 
     Fwk_Log.Insert("before","before"); 
     var update = context.Request.QueryString["Update"]; 
     Fwk_Log.Insert(update, "update = "); 
     long offset = 0; 
     int whilecount = 0; 
     int updateId = 0; 
     whilecount += 1; 
     string updates = Fwk_HttpRequest.ExecuteUrlRequestJSONString("https://api.telegram.org/bot" + Token + "/getUpdates"); 
     Shp_Telegram_GetUpdate list = new JavaScriptSerializer().Deserialize<Shp_Telegram_GetUpdate>(updates); 
     if (list != null) 
     { 
      foreach (var r in list.result) 
      { 
       //offset = list.result.First().update_id; 
       if (r.message.text == "/start") 
       { 
        Fwk_HttpRequest.ExecuteUrlRequestJSONString("https://api.telegram.org/bot" + Token + 
         "/sendMessage?chat_id=" + r.message.chat.id + "&text=" + "Hello World"); 
        Fwk_Log.Insert("sendMessage", ""); 
       } 
      } 
     } 
    } 

Antwort

1

Sie bekommen Dinge durcheinander. Siehe here

Es gibt zwei sich gegenseitig ausschließende Möglichkeiten des Empfangens Updates für Ihren bot - das getUpdates Verfahren einerseits und Webhooks auf der anderen Seite. Eingehende Updates werden auf dem Server gespeichert, bis der Bot sie entweder erhält, aber sie werden nicht länger als 24 Stunden aufbewahrt.

Unabhängig davon, welche Option Sie auswählen, erhalten Sie als Ergebnis JSON-serialisierte Update-Objekte.

Wenn Sie webhooks verwenden, brauchen Sie nicht getUpdate Methode aufzurufen.

+0

Vielen Dank für diese Antwort. Ich habe meinen Service auf den Webhook gesetzt und meinen Telegrammroboter erfolgreich eingerichtet. Nun, wenn jemand eine Nachricht an den Bot gesendet hat, wird dem Dienst gegeben, aber weiß nicht, wie man Update-Objekt füllt? @ charles-okwuagwu public void ProcessRequest (HttpContext Kontext) { Fwk_Log.Insert ("before", "before"); var update = context.Request.QueryString ["Aktualisieren"]; Fwk_Log.Insert (update, "update ="); context.Response.Write ("mein Service"); } – milad

+0

@milad, so dass Sie Updates erhalten können, alles was Sie brauchen ist eine Möglichkeit, sie zu verarbeiten, oder? –

+0

Ja, ich brauche einen Weg, um dies zu verarbeiten. nur ich möchte, wie man Update-Objekt füllt? Ich benutze ashx handeller in ASP – milad

Verwandte Themen