このドキュメントでは、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
のうち1つまたは複数のタスクを実行できなければなりません。
API呼び出しをテストする場合は、自分のアクセストークンに設定したaccess_token
パラメーターを含めることができます。ただし、アプリから安全な呼び出しを行う場合は、アクセストークンクラスを使用してください。
1回のAPIコールで、タスクを実行できるページに関する多くの情報を得ることができます。
タスクを実行できるすべてのページ、各ページで実行できるタスク、各ページの短期ページアクセストークンのリストを取得するには、ユーザーアクセストークンを使用してGET
リクエストを/user_id/accounts
エンドポイントに送信します。
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
タスクを実行できる人は、そのページでタスクを実行できるほかの人と、各人が実行できるタスクのリストを取得できます。
ページでタスクを実行できる人と、各人が実行できるタスクのリストを取得するには、GET
リクエストを/page_id/roles
エンドポイントに送信します。
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
タスクを実行できる人はページアクセストークンを使用して、ページ公開コンテンツアクセス機能を使う承認をアプリが受けている場合はユーザーアクセストークンを使用して、ページの詳細情報(基本データ、メール、営業時間など)を確認できます。
ページに関する詳細を取得するには、GET
リクエストを/page_id
エンドポイントに送信します。その際、fields
パラメーターに、確認したいページの詳細情報を設定します。
注: ページ公開コンテンツアクセス機能を使用する場合は、/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
タスクを実行できる人は、ページアクセストークンを使ってPOST
リクエストを/page_id
エンドポイントに送信できます。その際、変更するパラメーター(about
パラメーターなど)を指定します。
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
Webhookまたはpage_change_proposal
Webhook (またはその両方)をサブスクリプション登録する必要があります。
通知を受け取ったら、以下のいずれかで対応できます。
おすすめの変更を自分で受け入れるまたは却下するには、POST
リクエストを/page_change_proposal_id
エンドポイントに送信します。その際、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
タスクを実行できる人は、ページアクセストークンを使って GET
リクエストを/page_id/settings
エンドポイントに送信し、ページのすべての設定のリストを取得することができます。
curl -i -X GET "https://graph.facebook.com/v21.0
/page_id/settings"
成功すると、オブジェクトの配列を含むJSON応答をアプリが受け取ります。配列内の各オブジェクトは、ページ設定に設定されているsetting
であり、その値はtrue
またはfalse
のいずれかです。
{ "data": [ { "setting": "USERS_CAN_POST", "value": false }, { "setting": "USERS_CAN_MESSAGE", "value": true }, { "setting": "USERS_CAN_POST_PHOTOS", "value": true }, ... ] }
ページの設定を変更するには、POST
リクエストを/page_id/settings
エンドポイントに送信します。この際、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応答をアプリが受け取ります。
ページのレビュー(レビュー担当者の名前、そのPage-scoped ID、ポジティブなおすすめかネガティブなおすすめか、レビューテキスト)を取得するには、GET
リクエストを/page_id/ratings
エンドポイントに送信します。
curl -i -X GET "https://graph.facebook.com/page_id/ratings"
成功すると、レビューオブジェクトの配列を含むJSON応答をアプリが受け取ります。各オブジェクトには以下が含まれています。
created_time
: レビューが作成された時刻 recommendation_type
: positive
またはnegative
review_text
: レビューの内容reviewer
オブジェクト: レビューを書いた人のname
とid
{ "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" } }, ... ] }
特定の人をブロックしてページにコメントできないようにするには、POST
リクエストを/page_id/blocked
エンドポイントに送信します。この際、user
パラメーターに、ブロックしたい人のPage-scoped IDを指定します。
curl -i -X POST "https://graph.facebook.com/v21.0
/page_id/blocked"
-H "Content-Type: application/json" \
-d '{
"user":"psid_to_block",
}'
成功すると、Page-scoped IDがtrue
に設定されたJSON応答をアプリが受け取ります。
{ "psid_to_block": true }
ページにリンク、写真、動画を公開する方法を学ぶ。