1. IFTTT 레시피 생성
IFTTT에서 페이스북에 새 글을 게시하면 웹요청을 보내는 레시피를 생성한다.
IFTTT에 계정을 만들고, New Applet을 클릭하여 새로운 레시피를 만든다.
this를 클릭하여, 어떤 조건에서 레시피가 작동할 지 설정한다. (Trigger)
facebook을 검색하여 클릭한다.
새로운 상태를 올린 후 웹 요청을 보내게 하기 위해 New status message by you를 선택한다.
다음으로 that을 클릭하여 트리거 발생 시 어떤 액션을 할지 고르자
웹 요청을 보내기 위해 maker를 선택한다.
maker를 통해 웹 요청을 보낼 수 있다.
URL칸에는 http://PC서버의 ip주소:포트펀호/facebook를 입력한다.
방식은 POST로 설정한다.
content type은 x-www-form-urlencoded로 선택한다.
(json으로 해보고 싶었는데 body가 인식이 안되더라..)
body에는 변수이름=내용 의 형식으로 입력한다.
아래 from=From을 보면, from이라는 변수에 페이스북 게시글이 누가 등록한 것인지가 저장되어 body로 보내진다.
2. PC 서버와 IFTTT 연동
PC에서 SmartLamp 프로젝트를 열고,
npm install body-parser --save
명령어를 터미널창에 입력하여 body-parser를 설치한다.
body-parser는 웹요청의 body를 분석할 때 사용하는 모듈이다.
index.js파일을 아래와 같이 수정한다.
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
var port = 3000;
app.use(bodyParser.urlencoded({extended : false}));
app.get('/', function (req,res) {
console.log('app.get "/" ');
res.send("Smart Lamp Server");
});
app.post('/facebook', function(req,res) {
var from = req.body.from;
var myMessage = req.body.myMessage;
var updateAt = req.body.updateAt;
console.log('from : ', from );
console.log('myMessage : ', myMessage );
console.log('update at : ', updateAt );
console.log('facebook post');
res.send("Success");
});
app.listen(port, function () {
console.log('Smart Lamp Server app listening on port 3000!');
});
app.post()가 추가되었다.
이는 /facebook으로 post 요청이 올 때 처리하는 함수이다.
req의 body에서 각각의 변수를 지역변수 from, myMessage, updateAt에 저장하고
이를 콘솔창에 출력한다.
실행한 후, 페이스북에 글을 게시하면 아래와 같이 콘솔창에 게시자와 메시지, 업데이트시간이 표시된다.
'프로젝트 > Smart Lamp - 라즈베리파이' 카테고리의 다른 글
6. 라즈베리파이에서 네오픽셀LED 제어 (2) | 2017.01.05 |
---|---|
5. PC 서버와 라즈베리파이 통신 (0) | 2017.01.05 |
3. nodejs 서버 구축 - 윈도우&라즈베리파이 (0) | 2017.01.05 |
2. 깃허브 (0) | 2017.01.05 |
1. 환경 구성 (0) | 2017.01.05 |