2017-03-23 12 views
0

背景: 私は2つの異なるサードパーティを使って何かをするシステムを構築しています。 第三者#1 - Facebook()プロトコル経由で情報を送受信するためのWebフックが必要なFacebookブックメッセンジャーアプリです。 第三者#2 - 私はボット(GUPSHUPと呼ばれる)を構築するために使用したプラットフォームです。post()reqを別のapiに "転送"する方法、resを取得して返信しますか?

私のサーバーは中間にあるので、私のサーバーのエンドポイントにFacebookのメッセンジャーアプリを接続する必要があります(既に行っています)ので、Facebookのアプリケーションが取得するすべてのメッセージがMYサーバーに送信されます。

私が実際に必要とするのは、私のサーバが "ミドルウェア"として機能し、それが他のプラットフォームのURL(GUPSHUP-URLと呼ぶ)に "req"と "res"を送るだけです。 Facebookアプリに送信してください。

このようなミドルウェアを作成する方法はわかりません。 私のサーバーのポスト機能は次のとおりです。

app.post('/webhook', function (req, res) { 
 
/* send to the GUPSHUP-URL , the req,res which I got , 
 
    and get the update(?) req and also res so I can pass them 
 
    back like this (I think) 
 
    req = GUPSHUP-URL.req 
 
    res = GUPSHUP-URL.res 
 
    
 
*/ 
 

 
});

答えて

1

はい、あなたは要求モジュール

var request = require('request'); 

app.post('/webhook', function (req, res) { 
    /* send to the GUPSHUP-URL , the req,res which I got , 
     and get the update(?) req and also res so I can pass them 
     back like this (I think) 
     req = GUPSHUP-URL.req 
     res = GUPSHUP-URL.res 

     */ 

     request('GUPSHUP-URL', function (error, response, body) { 
     if(error){ 

      console.log('error:', error); // Print the error if one occurred 
      return res.status(400).send(error) 
      } 
      console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received 

       console.log('body:', body); // Print the HTML for the Google homepage. 
       return res.status(200).send(body); //Return to client 
      }); 

    }); 

セカンドバージョン

var request = require('request'); 


//use callback function to pass uper post 
function requestToGUPSHUP(url,callback){ 

request(url, function (error, response, body) { 

    return callback(error, response, body); 
} 

app.post('/webhook', function (req, res) { 
    /* send to the GUPSHUP-URL , the req,res which I got , 
     and get the update(?) req and also res so I can pass them 
     back like this (I think) 
     req = GUPSHUP-URL.req 
     res = GUPSHUP-URL.res 

     */ 

     requestToGUPSHUP('GUPSHUP-URL',function (error, response, body) { 

     if(error){ 

      return res.status(400).send(error) 
     } 

      //do whatever you want 


      return res.status(200).send(body); //Return to client 
     }); 


    }); 
を使用して別のサーバーに要求を行う渡すことができます

詳細情報Request module

+0

ありがとう@ Love-Kesh、私はあなたの助けに感謝します。 申し訳ありませんが、私が正しく理解していることを確認してください - 要求コードは リクエスト( 'GUPSHUP-URL'、function(error、res、req.body)){ if(error){...} /res.send(200)を上のポストに返すにはどうすればいいですか?*/ }); –

+0

回答 –

+0

の第2版を参照してくださいありがとう@ラブ・ケッシュ、あなたはそれを釘付け:-) –

関連する問題