問題

Typeformのasp.net Webフォームでwebhookレシーバーを作成する方法と、誰かが私のフォームを送信するたびに私のアプリでデータを取得する方法。

  ベストアンサー

エンドポイントを公開してPOSTリクエストを受け取るには、.ashx拡張子を持つファイルである "Generic Webハンドラ"として知られているasp.netの世界にHTTPハンドラを作成します。

ここで作成する方法についてのガイドを見ることができます: https://briancaos.wordpress.com/2009/02/13/the-ashx-extension-writing-your-own-httphandler/

実装は次のようになります。

 using System.Web;
using Newtonsoft.Json.Linq; // From https://www.newtonsoft.com/json

namespace MyNamespace
{
  public class MyClass : IHttpHandler
  {
    public void ProcessRequest(HttpContext context)
    {
      string body = String.Empty;
      context.Request.InputStream.Position = 0;

      using (var inputStream = new StreamReader(context.Request.InputStream))
      {
          body = inputStream.ReadToEnd();
      }

      dynamic json = JObject.Parse(body);

      // Access the webhook payload data ie, get first answer:
      var answers = json.form_response.answers;
      Console.WriteLine(answers)

      context.Response.StatusCode = 200;
      context.Response.End();
    }

    public bool IsReusable
    {
      get { return true; }
    }
  }
}
 

ここでは、さまざまなHTTPハンドラの完全な概要を見つけることができます。 https://msdn.microsoft.com/en-us/library/bb398986.aspx?f=255& MSPPError = -2147217396

  同じタグがついた質問を見る

asp.netwebformswebhookstypeform