2016-11-05 1 views
1

私はビルドしているモバイルアプリの休憩サービスをホストするNodeJsバックエンド(Sailsjsでビルド)を現在持っています。Facebook Messengerボットを既存のnodejバックエンドにしっかり統合する方法は?

Facebookのメッセンジャーに拡張したいので、ユーザーにアプリを使わずにボットと通信するオプションを与えることができます。

例えば、次の予定を検索したい場合、彼はそのアプリケーションを開いて見たり、メッセンジャーを開いて「次の予約はいつですか?」と尋ねることができます。 これを稼働させるには、Messengerユーザーをデータベースの既存ユーザーとして認識させる必要があります。これを行うには、私は現在Facebookメッセンジャーaccount linkingを使用しています。私は、アカウントの作業リンクを取得し、私のデータベースにユーザーのPSIDを保存することができました。 ボットの場合、私は現在Motion.ai(他のサービスの使用を考えています)を使用しています。すべてのメッセージは、My Motionのbot webhookとバックエンドWebhookに渡されます。 1つのアプリに2つのウェブフックを使用するのが正しいと感じていないのですか?

私のモバイルアプリケーションの残りのサービスは、すべてWebtokenを使用してユーザーを認識していますが、メッセンジャーのボットユーザーはWebトークンを持っていません。どうすれば解決できますか? トークンまたはPSIDとMotion.aiトークンを送信するオプションをユーザーに与えることはできますか? Motion.aiトークンはすべてのユーザーで同じですが、Motion.aiサーバーからの要求のみを受け入れるため、バックエンドをいくらか保護します。

私は本当にあなたが

[OK]を提供することができます任意の助けに感謝、私はそれが作業を取得する方法を発見しました。 私はオランダのボットを作っているので、Motion.aiは私のために働いていませんでした。私は、主にオランダ語のサポートのためにApi.aiに切り替えましたが、高度な言語処理能力のためにも、Api.aiに切り替えました。 私のボットとモバイルアプリケーションにコントローラを再利用できないことがわかりました。これを解決するために、すべてのロジックをサービス(より優れた設計)に移行し、ボットコントローラと休憩サービスコントローラで呼び出すことができました。

すべては、私は次のようでしたセキュアな方法で作業を取得するには:

1: Api.aiは私のFacebookのアプリのためのウェブフックとしての私のサーバーを使用するように、Facebookから作られたコールバックを結ぶアカウントをサポートしていません。 。

2:私は、Facebookのトークンを認める(それがユーザーにaccount_linking要求を送信一致しない場合)私のデータベースにユーザーIDを確認し、account_linkingコールバックを処理するために帆ポリシーを使用します。 Api.aiウェブフックを保護するために、基本認証を使用する他のポリシーを使用しました。

2.1ユーザーがまだリンクされていない場合、リンクプロセスはログインフォームを送信し、彼は自分のアプリケーションで使用された電子メールとパスワードでログインできます。

2.2:ユーザーの電子メールとパスワードが一致した場合、私はfbへのリダイレクトリンクを送信してログインを確認します。また、私のデータベースからusersidを含むトークンを追加します。

2.3: Fbは、ログインに成功したことをユーザーに通知し、account_linkingコールバックを自分から受け取ったトークンと共に送信するようになりました。ユーザーIDがトークンに入っているので、データベース内のユーザーを検索し、自分のFacebookIDをFacebookから受け取ったIDで更新できます。ユーザーは正式にログインします。

3:ポリシーが確認されると、私はFacebookのメッセージをApi.aiにリダイレクトするためにコントローラを使用します。

4:最後に、Api.aiは私のサーバにそれを処理し、fbユーザにメッセージをリダイレクトする応答を返します。

答えて

0

あなたが言ったようにあなたのための別のサービスに切り替えることができると仮定すると、api.aiに切り替えます。

これはone-click Facebook Messenger integrationを提供しており、ボット市場をリードしているようです。

wit.aiもありますが、まだテストしていません。

希望しました。

+0

ありがとうございますが、私はapi.aiとwit.aiについて知っていました。彼らは確かにbod構築プロセスを単純化しますが、私のセキュリティ問題を解決することはまだありません... –

関連する問題