2016-07-31 1 views
0

埋め込み型調査で送信ボタンを押すたびにTypeform webhook featureを使用してJSONに結果を生成しています。サービスを使用したときの説明と同じ結果が得られます以下のようなRequestBinが、私は、コマンドTypeforms webhookからの生の構文解析に関する問題

ngrok http 3000 

経由ngrok使用して、私の地元のアプリを公開して、ウェブフックのターゲットURLとして根本的なルートを設定すると、私は不十分な出力を得ます。ここExpressのルートがある:私はポストマンを使用してルート、興味​​深いことに生体内での出力のみを打つ

IncomingMessage { 
    _readableState: 
     ReadableState { 
      objectMode: false, 
      highWaterMark: 16384, 
      buffer: [], 
      length: 0, 
      pipes: null, 
      pipesCount: 0, 
      flowing: null, 
      ended: false, 
      endEmitted: false, 
      reading: false, 
      sync: true, 
      needReadable: false, 
      emittedReadable: false, 
      .... 
     body: {}, 
     params: {}, 
     ... 
     (can post the entire contents on Dropbox if comments think it is necessary) 

は次のとおりです:

サーバー側の出力を生成する

app.post('/receiveWebhook', function(req, res){ 
    console.log(req); 
    console.log(req.title); 
    res.send(200); 
}); 

{"title": "Test"} 

上記のExpressルートのconsole.logステートメントでは検証されません。

なぜ私はRequestBinを通じて有用なデータを受け取っていますが、ローカルアプリケーションの実際のサーバー側で受け取っていないのでしょうか?

答えて

2

リクエストを誤って使用しているようです(明示的に)。 Typeform webhookは要求の本体として結果を持つので、正しいデータを取得するにはbody-parserを使用する必要があります。

こちらをご覧ください:https://github.com/TypeformIO/SimpleLiveReports/blob/master/index.js

を重要なビット:

var bodyParser = require('body-parser')

ミドルウェア

app.use(bodyParser.json());

としてそれを使用して、ボディパーサーを含めます

使用req.body例えば、データを使用する:この設定で

app.post('/receive_results', function handleReceiveResults(req, res) { console.log('Got results!'); var body = req.body; saveAnswers(body.token, body.answers, body.uid); res.send('Ok!'); });

を、req.bodyは提出の結果が含まれている必要があります。それでも動作しない場合は私に教えてください!

関連する問題