Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Como conectar Facebook messenger con AWS Connect

2025年09月29日に「Dev.to」が公開したITニュース「Como conectar Facebook messenger con AWS Connect」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Amazon ConnectとFacebook Messengerを連携させ、企業の顧客対応を自動化・効率化する方法だ。AWS ConnectとFacebook APIをWebhookで繋ぎ、顧客からの問い合わせをチャットボットや担当者が一元的に対応できる。これにより、コンタクトセンターのコスト削減に繋がる。

ITニュース解説

近年、企業は顧客からの問い合わせに対応するコンタクトセンターの運営コストを削減し、顧客満足度を向上させる方法を模索している。その解決策の一つとして、プロセスの自動化と顧客の問い合わせに対する迅速な対応が注目されている。Amazon Connectは、このようなニーズに応えるクラウドベースのコンタクトセンターサービスとして登場した。これは、AWSのさまざまなサービス、例えばAIチャットボットを作成するためのAmazon Lexや、より高度な対話型AIモデルを提供するAmazon Bedrockなどと連携することで、顧客の問い合わせに自動で対応するボットを構築できる。ボットで解決できない複雑な問い合わせは、自動的に人間のエージェントへと引き継がれる仕組みになっている。

この文脈で特に重要になるのが「オムニチャネル」という概念だ。これは、顧客がどのようなプラットフォーム(例えば、WhatsApp、Facebook Messenger、Instagramなど)から問い合わせをしてきても、企業側でそれらのメッセージを一元的に管理し、同じように対応できる環境を指す。これにより、顧客は自分が使い慣れたチャネルで企業とコミュニケーションを取ることができ、企業は効率的に顧客対応を行うことが可能となる。

Amazon Connectはオムニチャネルソリューションとして紹介されているが、実際には各チャネルとの連携方法が大きく異なる場合がある。ネイティブに統合されているものもあれば、他のAWSサービスを利用したり、あるいはAPI(アプリケーション・プログラミング・インターフェース)を使って独自に開発したりする必要があるケースもある。例えば、WhatsAppからのメッセージについては、AWSが提供する「End User Messaging」サービスを利用することで、Amazon Connectと直接連携させることが可能だ。これには、AWSアカウントとWhatsApp Businessアカウント(WABA)を連携させる作業が必要となる。しかし、Facebook MessengerやInstagramといったプラットフォームの場合、AWS Connectとの直接的な連携機能は提供されていない。そのため、APIと「Webhook」と呼ばれる仕組みを組み合わせて、手動で連携環境を構築する必要がある。

Facebook MessengerをAmazon Connectに接続するための基本的な実装例は、既存のGitHubリポジトリ(amazon-connect/amazon-connect-message-streaming-examples)を参考にできる。ただし、FacebookのAPIバージョンが更新されている場合があるため、それに合わせて一部のコンポーネントを修正する必要があるかもしれない。この連携を実現するためには、AWSとFacebook Developersの両方でいくつかの設定とデプロイ作業を行う。前提として、ユーザーからのメッセージを受け取るための既存のFacebookページと、Meta開発者パネルで作成されたMeta Appがあること。また、AWS側では、Amazon Connectインスタンスがすでに作成されており、問い合わせを適切なエージェントに振り分けるコンタクトフローと、少なくとも1人のエージェントが割り当てられたキューが存在している必要がある。さらに、セキュリティを考慮し、各種トークンなどの機密情報を安全に管理するためのAWS Secret Managerにシークレットが用意されていることも重要だ。

Webhookの設定は、Facebookからのメッセージを受け取るための重要なステップである。Webhookとは、特定のイベント(この場合はFacebookページへのメッセージ受信)が発生した際に、Facebookがあらかじめ設定されたURL(エンドポイント)に自動的に通知を送信する仕組みを指す。まず、Facebook側でAppのWebhookメニューに入り、メッセージを購読する「Page」という製品を選択する。次に、通知を受け取るエンドポイントのURLと、こちらで任意に定義する検証トークンを設定する。この検証トークンは、FacebookがWebhookの正当性を確認するために使用する。購読するフィールドとしては、「messages」を選択することで、メッセージ関連のイベントのみを受け取ることができる。

Webhookの登録プロセスでは、Meta Appが設定されたエンドポイントに対し、HTTP GETリクエストを送信する。このリクエストには、Mode(通常は"subscribe")、Token(設定した検証トークン)、およびChallenge(ランダムな数値コード)というパラメータが含まれている。エンドポイント側では、まずModeが"subscribe"であり、受け取ったTokenが事前に設定した検証トークンと一致することを確認する。これらの条件が満たされた場合、受け取ったChallengeの値を加工せずにそのままHTTPレスポンスのボディとして返す必要がある。これにより、Facebookはエンドポイントが正しく設定されており、メッセージを受信する準備ができていると判断し、Webhookの登録が完了する。

Webhookの設定が完了したら、Messengerメニューに進み、メッセージを送信するFacebookページを接続し、対応するアクセストークンを生成する必要がある。このアクセストークンは、AWS Secret Managerに「PAGE_TOKEN」というキーで安全に保存される。このトークンは、Amazon Connectからの返信をFacebook Messenger経由でユーザーに送信する際に使用される。過去のAPIバージョンでは「APP_SECRET」と呼ばれるフィールドも使われていたが、現在のAPIバージョン(v23.0)では必ずしも必要ではないようだ。

Meta Appのすべての機能を使用し、最終的に本番環境で稼働させるためには、Metaプラットフォームで「ビジネス検証」を完了させる必要がある。また、アプリケーションに付与する権限は、その機能に必要な最小限のものに限定することが非常に重要である。不必要に多くの権限を要求すると、アプリケーションがブロックされるリスクがあるため注意が必要だ。Facebookからのメッセージ受信に限れば、Appを「アクティブ」モードに設定するだけでメッセージを受け取れる場合もあるが、これは本番環境での運用前に十分な検証が必要となる。

ここまでの一連の設定により、ユーザーからのメッセージがどのようにAmazon Connectに届き、そしてエージェントからの返信がどのようにユーザーに送られるかの全体像が理解できるだろう。

まず、ユーザーが企業のFacebookページ上でメッセージを送信する。 次に、Meta Appがこのメッセージイベントを検知し、設定されたWebhookエンドポイント、すなわちAWS上のAPI GatewayにHTTP POSTリクエストとして送信する。 API Gatewayは、このリクエストを受け取ると、あらかじめ設定されたLambda関数(ここでは「inbound Lambda」と呼ぶ)を起動する。 inbound Lambdaは、受け取ったメッセージ内容とユーザー情報から、そのユーザーとエージェントとの間に既存のチャットセッションがあるかを確認する。 既存のセッションがあればそれにメッセージを送り、なければAmazon Connect内で新しい会話を開始し、適切なエージェントが対応できるようにする。 エージェントがAmazon Connect上で顧客に返信すると、その応答やAmazon Connect内の各種イベントは、SNS(Simple Notification Service)トピックを通じて発行される。 このSNSトピックは、別のLambda関数(ここでは「outbound Lambda」と呼ぶ)をトリガーとして起動する。 outbound Lambdaは、イベントの種類に応じてデータベースを更新するなどの処理を行い、Secret Managerに保存されているFacebookページのアクセストークンを取得する。 そして、このアクセストークンを利用してFacebook Graph APIに直接メッセージを送信し、ユーザーにエージェントからの返信を届けるのだ。

このように、Facebook MessengerとAmazon Connectの連携は、いくつかのAWSサービス(API Gateway、Lambda、SNS、Secret Managerなど)とFacebookの開発者プラットフォームを組み合わせることで実現される。これにより、Facebookを利用する顧客に対して、効率的で統合されたコンタクトセンターサービスを提供することが可能となる。

関連コンテンツ

関連IT用語