Help us understand the problem. What is going on with this article?

キノコならわかる!IBM Bluemix と Facebookメッセンジャー

More than 3 years have passed since last update.

Facebookメッセンジャーを試してみた。何かよくわからないけど動いたので記録。

必要なもの

  • Facebookページ
     Facebookアプリを動かすためのページが必要。

  • Facebookアプリ
     メッセンジャーを使うためには受け口となるアプリが必要で、このアプリに対してMessengerを設定する。  

  • サーバーアプリ
     実際にメッセージを受信してアレコレする部分。

Facebookページの作成

下記より作成のほどを。
https://www.facebook.com/pages/create.php
image

Facebookアプリの作成

下記より作成のほどを。開発者登録が必要なので登録のほどを。
https://developers.facebook.com/
image

サーバーアプリ

あまり理解をしようともせず、ほぼコピペで実行!動いた!!何かがすごい!

  • Facebookアプリをあれこれ設定

 1.Messengerの追加
 左メニューにあるプロダクトから製品を追加を選択し、Messengerスタートをぽち
image

 2.もう一度スタートをぽち
image

  • 追加後の画面 こんな感じになる。このあと、主にトークンの生成Webhooksを操作していく。 image

トークンの生成

Facebookページを選択をドロップダウンすると、自身が管理するページがでてくるので
メッセージ送受信の口となるページを選択。トークンをメモメモ
image

WebHooksの設定

下記の画面が表示される。
コールバックURL=IBM Bluemix上で動作していたアプリのURL
トークンを確認=任意の文字列。後述するソースで使用
フォロー入力欄=不明・・。とりあえず全チェックオン!
image

この状態で、確認して保存を押しても駄目なんです。。
この画面を開いたまま、次へ。

routes/index.jsの修正

アプリにMessengerの設定をする際に、Webhooksを登録するのだが、
下記の通りレスポンスを返す必要がある。よくわからないけど。。
トークンを確認に、先程入力したトークン文字列をセットし、Bluemixにアップロード!

router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === 'トークンを確認') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});

WebHooksの設定に戻り確認して保存をぽち

正しく設定できていれば、完了となる!
image

オウム返し

pochi-sato さんのを参考に。
http://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840

body-parserが必要だったので、そこだけ修正。

var bodyParser = require('body-parser');
var jsonParser = bodyParser.json();

router.post('/', jsonParser, function(req, res, next) {
}
h2m_kinoko
I'm not kinoko, but maybe kinoko.
https://mashandroom.org
mashandroom
会社外活動・コミュニティとして、ハッカソンや各種イベントのボランティアなどに参加。ただただ自分たちが楽しみ、結果周りの人が喜んでくれるようなアウトプットを目指しています。創造せよ!頭にキノコが生えるまで
https://mashandroom.org
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away