Original Coast Clothing (OCC)は、Messengerプラットフォームの主な機能を紹介するために作成された架空のファッションブランドです。このガイドでは、Messengerに備わっている機能についてさらに詳しく学習するため、このサンプルアプリのコードをユーザーのローカル環境やリモートサーバーにダウンロードする方法を示しています。 複数のエントリーポイントを持つ完全なMessengerエクスペリエンスを紹介するため、この架空のビジネスには次の機能が備わっています。
|
このサンプルアプリでは、次の機能を利用しています。
このガイドを読み終わる頃には、自分のサーバーでMessengerアプリの全機能が実行され、テストページからのメッセージに応答しているはずです。
以下が必要になります。
CREATE_CONTENT
タスクを実行できるユーザーがリクエストしたもの)開発環境、ステージング環境、本番環境を分けている場合、環境ごとにMetaアプリとFacebookページを用意する必要があります。
ローカル環境でサンプルアプリを実行するには、NodeJS 10.x以上が必要になります。
ローカルマシンにoriginal-coast-clothing
リポジトリを複製します。
git clone https://github.com/fbsamples/original-coast-clothing.git cd original-coast-clothing
yarn install
メッセージを受信するには、当社のサーバーからの受信Webhooksを取得できることが前提となります。
外部アドレスが必要な場合は、NodeJSアプリにトンネリングする外部httpsアドレスを提供するngrok
を使用してください。
ngrok
をインストールする
npm install -g ngrok
好きなポートを指定して、ローカルサーバーへのトンネルをリクエストする
ngrok http 3000
画面には次のようにngrok
ステータスが表示されるはずです。
Session Status online
Account Redacted (Plan: Free)
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://1c3b838deacb.ngrok.io -> http://localhost:3000
Forwarding https://1c3b838deacb.ngrok.io -> http://localhost:3000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
ローカルマシンへの転送を行う、外部サーバーのhttps
URLに留意してください。上記の例では、https://1c3b838deacb.ngrok.io
です。
サンプル環境のテンプレートをアプリにコピーする
mv .sample.env .env
環境値を追加する
.env
ファイルを編集して、自身のFacebookアプリID、FacebookページID、ページアクセストークン、App Secretの値を追加します。VERIFY_TOKEN
の値を、ランダムな文字列に設定します。アプリはこの値を使ってAPI呼び出しを検証します。
node app.js
これで、ブラウザーからhttp://localhost:3000
でアプリにアクセスできるはずです
次のコマンドを実行して、アプリやページMessengerプロフィールのWebhooksサブスクリプション設定を行います。.env
ファイルで追加したVERIFY_TOKEN
の値を使用する必要があります。
http://localhost:3000/profile?mode=all&verify_token=<VERIFY_TOKEN>
Facebookから、またはMessengerで、自分のページにメッセージを送信してみてください。Webhookがイベントを受信したら、アプリの設定は完璧です。
locales/en_US.jsonファイルを編集します。get_started.welcomeの下のメッセージを置き換えて、「Hi {{userFirstName}}!Welcome to Original Coast Clothing...」を別の言葉に変更してみましょう。
最初のターミナルに戻ります。コードを変更したら、その都度NodeJSサーバーを再起動する必要があります。新しいコードを再読み込みするため、Ctrl-Cでサーバーを停止してから再起動します。
node app.js
Messengerを開いて、自分のページに「こんにちは」というメッセージを送信すると、新しいメッセージが届くはずです。
Herokuインスタンスは、ビジネスアプリやウェブサイトの本番環境やステージング環境をホストする際に活用できます。
git init heroku apps:create # Creating app... done, ⬢ YOUR-APP-NAME # Created http://YOUR-APP-NAME.herokuapp.com/ | git@heroku.com:YOUR-APP-NAME.git
heroku git:remote -a YOUR-APP-NAME git push heroku master
Herokuアプリダッシュボードの[設定]の下で、自分のアプリの環境変数を見つけます。自身のFacebookアプリID、FacebookページID、ページアクセストークン、App Secretの値を追加して、VERIFY_TOKEN
を作成します。
この時点で、アプリにアクセスできるようになっているはずです。環境変数として作成したVERIFY_TOKEN
を使用して、/profileエンドポイントを呼び出します。
https://YOUR-APP-NAME.herokuapp.com/profile?mode=all&verify_token=<VERIFY_TOKEN>
任意: 上記のURLはアップロードされたペルソナのIDを返します。それらのIDはメモリ内に保持されているので、返されたIDを環境変数として追加する必要があります。そうすれば再読み込み後も保持することができます。
heroku config:set PERSONA_BILLING=<PERSONA_ID> -a YOUR-APP-NAME heroku config:set PERSONA_ORDER=<PERSONA_ID> -a YOUR-APP-NAME heroku config:set PERSONA_SALES=<PERSONA_ID> -a YOUR-APP-NAME
FacebookからまたはMessengerで、自分のページにメッセージを送信してみます。Webhookがイベントを受信したら、アプリの設定は完璧です。
ngrokを実行すると、新しい外部アドレスが提供されます。.env
ファイルのAPP_URL
アドレスを更新してから、NodeJSサーバーを実行します。
node app.js
http://localhost:3000/profile?mode=webhook&verify_token=<VERIFY_TOKEN>
にアクセスして、Facebookアプリ設定のWebhookアドレスを更新します
Facebookアプリが開発モードのままになっている可能性があります。他のユーザーをアプリのテスターとして追加できます。そのユーザーが承認すれば、アプリからテスターにメッセージを送信できます。アプリを公開する準備ができたら、アプリが誰にでも返信できるように、pages_messaging
アクセス許可をリクエストしてください。