이 문서에서는 Facebook 페이지에서 다음의 작업을 수행하는 방법을 보여줍니다.
이 가이드에서는 페이지 API 개요를 읽은 것으로 가정합니다.
페이지에서 작업을 수행할 수 있는 사용자의 경우, Facebook 로그인을 구현하여 다음의 권한을 요청하고 사용자 또는 페이지 액세스 토큰을 받아야 합니다.
pages_manage_engagement
pages_manage_metadata
pages_manage_posts
pages_read_engagement
pages_read_user_engagement
pages_show_list
publish_video
권한(페이지에 동영상을 게시하는 경우)API 요청에서 비즈니스 시스템 사용자를 사용하는 경우 business_management
권한이 필요합니다.
앱 사용자는 API 요청에서 페이지에 대한 CREATE_CONTENT
, MANAGE
및/또는 MODERATE
작업을 수행할 수 있어야 합니다.
API 호출을 테스트할 때 액세스 토큰으로 설정된 access_token
매개변수를 포함할 수 있습니다. 그러나 앱에서 보안 호출을 수행할 때는 액세스 토큰 클래스를 사용합니다.
한 번의 API 호출은 작업을 수행할 수 있는 페이지에 대해 많은 정보를 제공할 수 있습니다.
작업을 수행할 수 있는 모든 페이지, 각 페이지에서 수행할 수 있는 작업, 각 페이지의 단기 실행 페이지 액세스 토큰으로 구성된 리스트를 가져오려면 사용자 액세스 토큰을 사용하여 /user_id/accounts
엔드포인트로 GET
요청을 보내세요.
curl -i -X GET "https://graph.facebook.com/user_id/accounts"
요청에 성공하면 앱은 페이지 개체의 배열을 포함하는 JSON 응답을 받게 됩니다. 각 페이지 개체에는 다음 항목이 포함됩니다.
{ "data": [ { "access_token": "{facebook-for-developers-page-access-token}", "category": "Internet Company", "category_list": [ { "id": "2256", "name": "Internet Company" } ], "name": "Facebook for Developers", "id": "{facebook-for-developers-page-id}", "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT" ] }, { "access_token": "{my-outlandish-stories-page-access-token}", "category": "Blogger", "category_list": [ { "id": "361282040719868", "name": "Blogger" } ], "name": "My Outlandish Stories", "id": "{my-outlandish-stories-page-id}", "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] }, ... ] }
페이지에서 MANAGE
작업을 수행할 수 있을 경우, 각 사용자가 수행할 수 있는 작업을 포함하여 해당 페이지에서 작업을 수행할 수 있는 다른 사용자의 리스트를 가져올 수 있습니다.
사용자와 이들이 페이지에서 수행할 수 있는 작업의 리스트를 가져오려면 /page_id/roles
엔드포인트로 GET
요청을 보내세요.
curl -i -X GET "https://graph.facebook.com/page_id/roles"
요청에 성공하면 앱은 사용자 이름, 이들의 페이지 범위 ID, 각 사용자가 페이지에서 수행할 수 있는 작업이 포함된 JSON 응답을 받게 됩니다.
{ "data": [ { "name": "Person One", "id": "page_scoped_id_for_one" "tasks": [ "ANALYZE" ] }, { "name": "Person Two", "id": "page_scoped_id_for_two", "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] }, ... ], }
페이지에서 MANAGE
작업을 수행할 수 있을 경우, 페이지 액세스 토큰을 사용할 수 있습니다. 또는 앱이 페이지 공개 콘텐츠 액세스 기능에 대한 승인을 받은 경우, 사용자 액세스 토큰을 사용하여 정보, 이메일, 운영 시간 등의 페이지 상세 정보를 확인할 수 있습니다.
페이지에 대한 상세 정보를 가져오려면 fields
매개변수를 확인하려는 페이지 상세 정보로 설정하고 /page_id
엔드포인트로 GET
요청을 보내세요.
참고:/pages/search
엔드포인트를 사용하여 페이지 공개 콘텐츠 액세스 기능을 사용할 때의 페이지 ID를 찾을 수 있습니다.
curl -i -X GET "https://graph.facebook.com/page_id \ ?fields=about,attire,bio,location,parking,hours,emails,website"
요청에 성공하면 앱은 요청한 필드 값이 포함된 JSON 응답을 받게 됩니다. 응답에서 필드가 반환되지 않으면 페이지에서 이 값을 설정하지 않은 것입니다. 예를 들어 페이지에서 attire
필드를 설정하지 않았다면 이 필드가 응답에 반환되지 않습니다.
페이지에서 MANAGE
작업을 수행할 수 있을 경우, 페이지 액세스 토큰을 사용하여 about
매개변수 등과 같이 업데이트하고자 하는 매개변수와 함께 /page_id
엔드포인트로 POST
요청을 보낼 수 있습니다.
curl -i -X POST "https://graph.facebook.com/v21.0
/page_id" \
-H "Content-Type: application/json" \
-d '{
"about":"This is an awesome cafe located downtown!",
}'
요청에 성공하면 앱은 success
가 true
로 설정된 JSON 응답을 받게 됩니다.
Meta는 오타를 수정하거나 페이지에서 카테고리를 업데이트하는 등, 페이지 상세 정보에 대한 변경 사항을 수시로 제안함으로써 사용자가 페이지를 더 잘 찾을 수 있도록 지원합니다. 이러한 알림을 받으려면 page_upcoming_change
및/또는 page_change_proposal
Webhooks를 구독해야 합니다.
알림을 받고 나면 다음 중 하나를 수행할 수 있습니다.
제안된 변경 사항을 적극적으로 수락하거나 거부하려면 /page_change_proposal_id
엔드포인트로 POST
요청을 보내세요. 이때 accept
필드를 true
로 설정하여 변경 사항을 수락하거나 false
로 설정하여 변경 사항을 거부합니다. page_change_proposal_id
는 page_upcoming_change
Webhooks 알림에서 받는 proposal.id
값이거나 page_change_proposal
Webhooks 알림에서 받은 value.id
값입니다.
curl -i -X POST "https://graph.facebook.com/v21.0
/page_change_proposal_id" \
-H "Content-Type: application/json" \
-d '{
"accept":"true",
}'
요청에 성공하면 앱은 success
가 true
로 설정된 JSON 응답을 받게 됩니다.
페이지에서 MANAGE
작업을 수행할 수 있을 경우, 페이지 액세스 토큰을 사용하여 /page_id/settings
엔드포인트로 GET
요청을 보내서 해당 페이지에 대한 모든 설정을 리스트로 가져옵니다.
curl -i -X GET "https://graph.facebook.com/v21.0
/page_id/settings"
요청에 성공하면 앱은 개체 배열이 포함된 JSON 응답을 받게 됩니다. 각 개체는 페이지 설정과 그 값(true
또는 false
)으로 설정된 setting
입니다.
{ "data": [ { "setting": "USERS_CAN_POST", "value": false }, { "setting": "USERS_CAN_MESSAGE", "value": true }, { "setting": "USERS_CAN_POST_PHOTOS", "value": true }, ... ] }
페이지에 대한 설정을 업데이트하려면 /page_id/settings
엔드포인트로 POST
요청을 보내세요. 이때 option
매개변수는 업데이트하고자 하는 설정으로 설정합니다.
curl -i -X POST "https://graph.facebook.com/v21.0
/page_id/settings" \
-H "Content-Type: application/json" \
-d '{
"option":{"USERS_CAN_MESSAGE": "true"},
}'
요청에 성공하면 앱은 success
가 true
로 설정된 JSON 응답을 받게 됩니다.
긍정적인 추천이든 부정적인 추천이든 리뷰어의 이름, 페이지 범위 ID를 포함한 페이지 리뷰와 리뷰 텍스트를 가져오려면 /page_id/ratings
엔드포인트로 GET
요청을 보낼 수 있습니다.
curl -i -X GET "https://graph.facebook.com/page_id/ratings"
요청에 성공하면 앱은 리뷰 개체가 포함된 JSON 응답을 받게 됩니다. 각 개체에는 다음 항목이 포함됩니다.
created_time
positive
또는 negative
로 설정된 recommendation_type
review_text
name
및 id
를 포함한 reviewer
개체{ "data": [ { "created_time": "unixtimestamp", "recommendation_type": "positive", "review_text": "I love this page!", "reviewer": { "name": "Person One", "id": "psid_for_one" } }, { "created_time": "unixtimestamp", "recommendation_type": "positive", "review_text": "This page is wonderful!", "reviewer": { "name": "Person Two", "id": "psid_for_two" } }, ... ] }
사용자가 페이지에 댓글을 작성하지 못하도록 차단하려면 /page_id/blocked
엔드포인트로 POST
요청을 보내세요. 이때 user
매개변수는 차단하고자 하는 사용자의 페이지 범위 ID로 설정합니다.
curl -i -X POST "https://graph.facebook.com/v21.0
/page_id/blocked"
-H "Content-Type: application/json" \
-d '{
"user":"psid_to_block",
}'
요청에 성공하면 앱은 페이지 범위 ID를 true
로 설정한 JSON 응답을 받게 됩니다.
{ "psid_to_block": true }
링크, 사진, 동영상을 페이지에 공개하는 방법에 대해 알아보세요.