페이지용 Webhooks

페이지용 Webhooks에서 페이지 업데이트에 대한 실시간 알림을 보낼 수 있습니다. 예를 들어 사용자가 피드에 게시하거나, 게시물에 댓글을 달거나, 게시물에 좋아요를 누를 때마다 실시간 업데이트를 받을 수 있습니다.

페이지 Webhook을 설정하는 방법은 다음과 같습니다.

  1. 엔드포인트를 설정하고 Webhooks 제품을 구성합니다.
  2. Facebook 페이지를 사용하여 앱을 설치합니다.

엔드포인트 및 Webhook 제품 설정

시작하기 가이드에 따라 엔드포인트를 만들고 Webhooks 제품을 구성합니다. 구성하는 동안 페이지 개체를 선택하고 아래의 페이지 필드 중 하나 이상을 구독하세요.

필드설명

feed

게시물, 공감, 공유 등의 페이지 피드가 변경되었을 때 알립니다.

messages

페이지가 Messenger를 통해 메시지를 받았을 때 알립니다. 사용 가능한 메시지 Webhooks 필드의 리스트는 Messenger용 Webhooks 가이드를 참조하세요.

앱 설치

페이지에 Webhooks를 구성한 앱을 설치했거나 페이지가 앱 설정에서 플랫폼을 비활성화하지 않았을 경우에만 Webhook 알림이 전송됩니다. 페이지에 앱을 설치하려면 앱이 페이지의 액세스 토큰을 사용하여 POST 요청을 페이지의 subscribed_apps 에지로 보내도록 합니다.

요구 사항

메시지 관련 필드만

요청 샘플

curl -i -X POST "https://graph.facebook.com/{page-id}/subscribed_apps
  ?subscribed_fields=feed
  &access_token={page-access-token}"

응답 샘플

{
  "success": "true"
}

페이지에 어떤 앱이 설치되었는지 확인하려면 대신 GET 요청을 보내세요.

요청 샘플

curl -i -X GET "https://graph.facebook.com/{page-id}/subscribed_apps &access_token={page-access-token} 

응답 샘플

{
  "data": [
    {
      "category": "Business",
      "link": "https://my-clever-domain-name.com/app",
      "name": "My Sample App",
      "id": "{page-id}"
    }
  ]
}

페이지에 앱을 설치하지 않았다면 API가 빈 데이터 세트를 반환합니다.

그래프 API 탐색기

프로그래밍 방식으로 앱을 설치하고 싶지 않은 경우 대신 그래프 API 탐색기로 쉽게 설치할 수 있습니다.

  1. 드롭다운 메뉴에서 앱을 선택합니다. 앱의 액세스 토큰이 반환됩니다.
  2. 토큰 가져오기 드롭다운을 클릭하고 사용자 액세스 토큰 가져오기를 선택한 다음, pages_manage_metadata 권한을 선택합니다. 그러면 앱 토큰이 pages_manage_metadata 권한이 부여된 사용자 액세스 토큰으로 변경됩니다.
  3. 다시 토큰 가져오기를 클릭하고 페이지를 선택합니다. 사용자 액세스 토큰이 페이지 액세스 토큰으로 변경됩니다.
  4. GET 드롭다운 메뉴를 클릭하고 POST를 선택하여 작업 메서드를 변경합니다.
  5. 기본 me?fields=id,name 쿼리를 페이지의 id(다음에 /subscribed_apps가 옴)로 변경한 다음, 쿼리를 제출합니다.

일반적인 사례

페이지 피드 상세 정보 가져오기

앱에서 페이지의 피드를 받아보고 피드 관련 변경 사항이 발생할 때마다 알림을 받을 수 있습니다. 예를 들어 사용자가 페이지에 게시물을 올릴 때 전송되는 알림은 다음과 같습니다.

Webhooks 응답 샘플

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "feed",
            "value": {
              "from": {
                "id": "{user-id}",
                "name": "Cinderella Hoover"
              },
              "item": "post",
              "post_id": "{page-post-id}",
              "verb": "add",
              "created_time": 1520544814,
              "is_hidden": false,
              "message": "It's Thursday and I want to eat cake."
            }
          }
        ],
        "id": "{page-id}",
        "time": 1520544816
      }
    ],
    "object": "page"
  }
]

알림의 post_id를 사용하여 해당 페이지 게시물에 댓글을 작성합니다.

API 요청 샘플

curl -i -X POST   "https://graph.facebook.com/{page-post-id}/comments
  ?message=I%20want%20chocolate%20cake%20!
  &access_token=page-access-token" 

API 응답 샘플

{
  "id": "{comment-id}"
}