2016-12-11 4 views
1

Telegram BotのプログラミングにはC#を使用しますが、webhookを設定すると、Updateオブジェクトを埋めることができません。私はashxハンドラを使用します。C#でwebhookで更新オブジェクトを取得するには?

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", ""); 
       } 
      } 
     } 
    } 

答えて

1

あなたは物事が混ざっています。他方はウェブフックにgetUpdates方法 - あなたの ボットのための受信アップデートの二つの相互に排他的な方法がありますhere

参照してください。 到着したアップデートは、いずれかの方法で のボットを受信するまでサーバに保存されますが、24時間以上は保持されません。

どのオプションを選択しても、結果として JSONシリアル化された更新オブジェクトが表示されます。

あなたはウェブフックを使用している場合は、getUpdateメソッドを呼び出す必要はありません。

+0

ありがとうございました。私はwebhookで私のサービスを設定し、私の電報ロボットが正常にセットアップされている。誰かがボットにメッセージを送った場合、サービスには渡されますが、Updateオブジェクトを埋める方法はわかりません。 @ charles-okwuagwu 公開void ProcessRequest(HttpContextコンテキスト) { Fwk_Log.Insert( "before"、 "before"); var update = context.Request.QueryString ["Update"]; Fwk_Log.Insert(update、 "update ="); context.Response.Write( "my service"); } – milad

+0

@milad更新を受け取れるように、必要なのは処理する方法だけです。 –

+0

はい私はこれを処理する方法が必要です。ちょうど私はどのように更新オブジェクトを入力したいですか?あなたが入ってくるアップデートを受け取ったときにASP – milad

関連する問題