LoginSignup
32
32

More than 5 years have passed since last update.

AWS API GatewayとAWS Lambdaで、Facebook Botを作成する

Last updated at Posted at 2016-04-26

事前準備

AWS API GatewayとAWS Lambdaで、HelloWorldを作成する
http://qiita.com/akira-sasaki/items/b9e8e8a0330818e3b71d

Facebookアプリの作成

bot001.png

bot002.png

bot003.png

bot004.png

Reloadを押す。

bot005.png

bot007.png

Facebook Pageの作成

page001.png

page002.png

page003.png

page004.png

page005.png

page006.png

AWS Lamdbaの作成

lamdba001.png

メッセージ受信用のScript

FacebookBotCallback
exports.handler = function(event, context) {
    console.log('Received event:', JSON.stringify(event, null, 2));
}

lamdba002.png

lamdba003.png

lamdba004.png

lamdba005.png

lamdba006.png

lamdba007.png

lamdba008.png

lamdba009.png

lamdba010.png

lamdba011.png

lamdba012.png

Cloud Watchでログをチェック

lamdba013.png

watch001.png

watch002.png

watch003.png

watch004.png

watch005.png

Validation用のScript

FacebookBotValidation
var validationToken = "ValidationToken";

exports.handler = function(event, context) {
    console.log('Received event:', JSON.stringify(event, null, 2));

    if (!event["hub.verify_token"] || !event["hub.challenge"]) {
        context.fail("invalid parameter");
        return;
    }

    if (event["hub.verify_token"] === validationToken) {
        context.done(null, Number(event["hub.challenge"]));
    } else {
        context.fail("validation failed");
    }
};

val001.png

lamdba003.png

val002.png

val003.png

val004.png

val006.png

AWS API Gateway

api001.png

api002.png

api101_1.png

受信用のPOSTメソッドを作成

api102_1.png

api103_1.png

api104_1.png

api105_1.png

Curlで呼び出してみる。

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POd '{"key1":"test1","key2":"test2","key3":"test3"}' https://#####.execute-api.ap-northeast-1.amazonaws.com/botcallback/botcallback

Cloud Watchでログ確認

watch001.png

watch002.png

watch003.png

watch004.png

api017.png

Validation用のGETメソッドを作成

api201_1.png

api202.png

api204.png

api205.png

api206.png

api207.png

api208.png

api209.png

  • hub.challenge
  • hub.verify_token

を追加。

api210.png

api211.png

api212.png

api213.png

application/json
{
  "hub.verify_token": "$input.params('hub.verify_token')",
  "hub.challenge": "$input.params('hub.challenge')"
}

FacebookとAWS API Gatewayを連携

fb001.png

fb002.png

fb003.png

curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=トークン"

をコマンドラインで実行。

fb004.png

fb005.png

fb006.png

作成したページでメッセージ書き込み

作成したページのメッセージを書き込む

Cloud Watchでログ確認

watch001.png

watch002.png

watch003.png

watch004.png

メッセージがログにでたら成功!

おうむ返しBotのプログラム作成 

32
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
32