前のパートに戻る 完了して次のパートへ  

  3-1 コールバックurlの作成

この章で学べること


- callback urlの作成
- Rackの設定
- .gitignoreの設定
- webhookの設定

学習キーワード


- callback url
- Rack
- JSON形式

callback urlを作成


まずは、callback urlを作成して、Facebookアプリの認証作業を行うようにします。callback urlとは何かの動作が行われたときに移動するurlのことです。今回の場合は認証が行われた後に移動するurlを指します。

app.rbを以下のように編集してください。

hub.verify_tokenはfacebook上で設定したトークンが入ります。

/callbackにアクセスした際に、先ほどFacebook Messengerのダッシュボード画面上で入力したトークン(今回の場合はhogehoge)と一致することを確認の上、hub.challengeパラメーターを返却することで認証が完了するという設定です。

Facebook Messengerの公式ドキュメントに載っているようにFacebook Messengerでは以下のように認証プロセスを行います。

公式ドキュメント

1.認証トークンを作成します。任意のランダムな文字列で、Webhookにハードコードされます。

2.アプリのWebhookイベントを受信するようWebhookを登録する際に、作成した認証コードをMessengerプラットフォームに提示します。

3.Messengerプラットフォームから、GETリクエストがクエリ文字列のhub.verifyパラメーターのトークンとともにWebhookに送られます。

4.送信されたトークンが認証トークンに一致することを確認し、リクエストからのhub.challengeパラメーターを使用して応答します。

5.MessengerプラットフォームがWebhookをアプリに登録します。

Rackの設定ファイルを作成


RackはRubyでWebサーバーを立ち上げるためのインターフェースです。

herokuの読み込み時に実行する処理を書くために、config.ruファイルを作成します。 以下コマンドを実行してください。

$ touch config.ru

herokuでは、はじめにconfig.ruファイルを読み込みます。config.ruに以下を追加しましょう。 以下は、 heroku起動時に app.rb を読み込み、Sinatraアプリケーションを立ち上げるということです。

Rackの設定ファイルを作成したら、herokuにデプロイします


デプロイの前に以下のコマンドで.gitignoreを作成します。

.gitignoreファイルは、Gitの管理に含めないファイルを指定するためのファイルです。gemのインストール先は実行環境によって異なるので以下の二つのファイルを指定してGitの管理下から除外します。

・/.bundle

・/vendor/bundle

$ touch .gitignore

作成したら、.gitignoreファイルに以下を追加しましょう。

# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#   git config --global core.excludesfile '~/.gitignore_global'

/.bundle
/vendor/bundle

追加したら、デプロイします。以下コマンドを実行しましょう。

$ git init
$ git add .
$ git commit -m "first commit"

Gitを使ったことが無い方は以下を参考に学習してみましょう。

サルでも分かるGit入門

次に、heroku loginからdeployまでを実行します。 ターミナルで以下のコマンドを順に実行していきましょう。

ログインする

$ heroku login

heroku上にアプリ作成

$ heroku create <app name>

リモートリポジトリにherokuが登録されていることを確認する。登録されて入れば「heroku」と出力されます。

$ git remote

出力結果

$ heroku

デプロイを行う

$ git push heroku master

該当のサイトを開いて、ブラウザで確認をする

$ heroku open

正常に起動されて、「hello world」と表示されていれば完成です。

議論
0 質問
このコースの評価は?