드롭박스 webhooks 연결하기

2016. 10. 20. 22:51IT관련

반응형


라즈베리파이로 만드는 전자액자 구상


드롭박스의 파일이 변경되면 Push 메시지를 받고 싶어서 IFTTT랑 연동을 했었다.

그런데 push가 제대로 오지 않거나 딜레이가 발생하는 경우가 많았다.

확인해 보니 드롭박스에서 Webhooks라는 서비스를 제공하고 있었다. 

Webhooks는 웹 어플리케이션으로 드롭박스내 파일의 변경이 있는 경우 실시간으로 노티를 주는 서비스였다.

그리하여 IFTTT를 포기하고 webhooks를 사용하기로 결정하였다.


먼저 이 서비스를 이용하기 위해서는 verification request를 수행해야 한다.

설명을 읽어 보니 나의 웹서버 URL을 등록하면 해당 URL로 드롭박스가 GET 방식으로 challenge라는 파라미터에 데이터 담아 전달한다.

웹서버는 전달받은 challenge 값을 echo하기만 하면 된다.


설명에는 Flask 프레임워크라는 파이썬 웹 프레임워크를 사용한 예제가 나와 있는데 이미 나의 라즈베리파이에는 Nginx + php로 웹서버가 설치되어서 그런지 제대로 동작하지 않았다.


결국은 php로 challenge를 echo하도록 작업하였다.


index.php

<?php

$var = $_GET["challenge"];

echo $var

?>


Verification이 성공하면 아래와 같이 Webhooks의 status가 Enabled로 표시된다.


이제 등록한 URL로 파일 변경이 있는 경우 알림을 HTTP POST 방식으로 받을 수 있게 된다.

예제)

{
    "list_folder": {
        "accounts": [
            "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc",
            ...
        ]
    },
    "delta": {
        "users": [
            12345678,
            23456789,
            ...
        ]
    }
}


반응형