게시물

이 가이드에서는 Meta의 페이지 API를 사용하여 Facebook 페이지에서 페이지 이름으로 게시물을 생성, 게시, 업데이트하고 이에 답글을 다는 방법을 설명합니다.

시작하기 전에

This guide assumes you have read the Overview

For a person who can perform tasks on the page, you will need to implement Facebook Login to ask for the following permissions and receive a Page access token:

  • pages_manage_engagement
  • pages_manage_posts
  • pages_read_engagement
  • pages_read_user_engagement
  • publish_video permission, if you are publishing a video to the Page

Your app user must be able to perform the CREATE_CONTENT, MANAGE, and MODERATE tasks on the Page in the API requests.

If your app users do not own or manage the Page in the API requests, your app will need a User access token and the following features:

  • Page Public Content Access

모범 사례

API 호출을 테스트할 때 액세스 토큰으로 설정된 access_token 매개변수를 포함할 수 있습니다. 그러나 앱에서 보안 호출을 수행할 때는 액세스 토큰 클래스를 사용합니다.

게시물 게시

페이지에 게시물을 게시하려면 /page_id/feed 엔드포인트로 POST 요청을 보내세요. 이때 page_id는 페이지 ID가 되고 다음과 같은 매개변수를 포함합니다.

  • 게시물 텍스트로 설정된 message
  • URL로 설정된 link(링크를 게시하고자 하는 경우)
  • true(즉시 게시물 공개, 기본값) 또는 false(나중에 공개)로 설정된 published
    • 다음 형식 중 하나로 된 날짜와 함께 false로 설정된 경우 scheduled_publish_time을 포함하세요.
      • 정수 UNIX 타임스탬프[초](예: 1530432000)
      • ISO 8061 타임스탬프 문자열(예: 2018-09-01T10:15:30+01:00)
      • PHP의 strtotime()에서 분석 가능한 모든 문자열(예: +2 weeks, tomorrow)

예약 게시물에 대한 참고 사항

  • 게시 날짜는 API 요청 시점으로부터 10분에서 30일 이내여야 합니다.
  • strtotime()의 상대적 날짜 문자열을 사용할 경우 생성된 게시물의 scheduled_publish_time쓰기 후 읽기를 수행하여 예상한 값과 일치하는지 확인할 수 있습니다.

요청 예시

가독성을 높이기 위해 형식을 지정했습니다. page_id와 같은 굵은 글꼴 값, 기울임꼴 값을 자신의 값으로 바꾸세요.
curl -X POST "https://graph.facebook.com/v21.0/page_id/feed" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"your_message_text",
           "link":"your_url",
           "published":"false",
           "scheduled_publish_time":"unix_time_stamp_of_a_future_date",
         }'

요청에 성공하면 앱이 게시물 ID가 포함된 다음과 같은 JSON 응답을 받게 됩니다.

{
  "id": "page_post_id" 
}

타겟 타게팅 추가

페이지 게시물을 볼 수 있는 대상을 제한하려면 POST 요청에 targeting.geo_locations 개체 또는 feed_targeting.geo_locations를 추가할 수 있습니다.

-d '{
      ...
      "targeting": {
        "geo_locations": {
          "countries": [
            "CA"
          ],
          "cities": [
            {
              "key": "296875",
              "name": "Toronto"
            }
          ]
        }
      },
      ...
    }'

문제 해결

국가와 해당 국가 내 지역을 모두 사용하는 경우 '일부 위치가 중복됩니다. 위치를 삭제해보세요.'라는 오류가 발생할 수도 있습니다. 이 경우, 원하는 도달 범위에 따라 지역 또는 국가를 타게팅하세요.

미디어 게시물 게시

페이지에 사진과 동영상을 게시할 수 있습니다.

사진 게시

페이지에 사진을 게시하려면 /page_id/photos 엔드포인트로 POST 요청을 보내세요. 이때 page_id는 페이지 ID가 되고 url 매개변수는 게시물의 사진으로 설정합니다.

요청 예시

가독성을 높이기 위해 형식을 지정했습니다. page_id와 같은 굵은 글꼴 값, 기울임꼴 값을 자신의 값으로 바꾸세요.
curl -X POST "https://graph.facebook.com/v21.0/page_id/photos" \
     -H "Content-Type: application/json" \
     -d '{
           "url":"path_to_photo",

요청에 성공하면 앱이 사진 ID 및 게시물 ID가 포함된 다음과 같은 JSON 응답을 받게 됩니다.

{
  "id":"photo_id",
  "post_id":"page_post_id" 
}

동영상 게시

페이지에 동영상 게시물을 게시하려면 동영상 API 문서를 참조하세요.

게시물 가져오기

페이지 게시물로 구성된 리스트를 가져오려면 /page_id/feed 엔드포인트로 GET 요청을 보내세요.

요청 예시

가독성을 높이기 위해 형식을 지정했습니다. page_id와 같은 굵은 글꼴 값, 기울임꼴 값을 자신의 값으로 바꾸세요.
curl -i -X GET "https://graph.facebook.com/v21.0/page_id/feed"

요청에 성공하면 앱이 페이지에 게시된 각 게시물에 대한 게시물 ID, 게시물이 생성된 시간, 게시물 내용을 포함하는 개체의 배열과 함께 다음과 같은 JSON 응답을 수신합니다.

{
  "data": [
    {
      "created_time": "2019-01-02T18:31:28+0000",
      "message": "This is my test post on my Page.",
      "id": "page_post_id"
    }
  ],
...
}

제한 사항

  • 라이브 방송 - 페이지 게시물에 만료된 동영상(예: 라이브 방송)이 포함될 경우 게시물 필드는 가져올 수 있지만 해당 동영상과 관련된 필드는 가져올 수 없습니다. 이 동영상에는 자체적인 공개 범위 규칙이 적용됩니다. 동영상이 만료되었다면 페이지 관리자만 동영상 정보를 확인할 수 있습니다.
  • 메시지 CTA - 앱이 페이지 전체 공개 콘텐츠 액세스 기능에 대한 승인을 받았다면 공개적으로 공유된 페이지 게시물을 요청하는 데 어떤 액세스 토큰이든 사용할 수 있습니다. 그러나 페이지는 다른 페이지로 메시지를 보낼 수 없으므로 메시지 CTA를 포함하는 게시물에는 다른 페이지의 액세스 토큰을 사용하여 액세스할 수 없습니다.

페이지 게시물 URL

페이지 게시물의 URL 또는 퍼머링크는 https://www.facebook.com/page_post_id입니다.

게시물 업데이트

페이지 게시물을 업데이트하려면 업데이트하려는 매개변수를 새 콘텐츠로 설정하고 /page_post_id 엔드포인트로 POST 요청을 보내세요.

요청 예시

가독성을 높이기 위해 형식을 지정했습니다. page_post_id와 같은 굵은 글꼴 값, 기울임꼴 값을 자신의 값으로 바꾸세요.
curl -X POST "https://graph.facebook.com/v21.0/page_post_id" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"I am updating my Page post",
         }'

요청에 성공하면 앱은 success가 true로 설정된 다음과 같은 JSON 응답을 받게 됩니다.

{
  "success": true
}

제한 사항

해당 앱을 사용하여 작성한 게시물일 경우에만 앱에서 페이지 게시물을 업데이트할 수 있습니다.

게시물 삭제

페이지 게시물을 삭제하려면 /page_post_id 엔드포인트로 DELETE 요청을 보내세요. 이때 page_post_id는 삭제하고자 하는 게시물의 ID입니다.

요청 예시

가독성을 높이기 위해 형식을 지정했습니다. page_post_id와 같은 굵은 글꼴 값, 기울임꼴 값을 자신의 값으로 바꾸세요.
curl -i -X DELETE "https://graph.facebook.com/v21.0/page_post_id"

요청에 성공하면 앱은 successtrue로 설정된 다음과 같은 JSON 응답을 받게 됩니다.

{
  "success": true
}