ページの管理

このドキュメントでは、Facebookページに関する以下のタスクを実行する方法を説明します。

  • タスクを実行できるページのリストを取得する。このリストには次の情報が含まれます。
    • 各ページで実行できる具体的なタスク
    • API呼び出しのテストに使用できる、各ページのページアクセストークン
  • ページの詳細情報を取得および変更する
  • ページの設定を取得および変更する
  • Metaがページに対して実装する予定のおすすめの変更に関する通知を受け取る
    • これらのおすすめの変更を受け入れるまたは却下する
  • ページのレビューを取得する
  • ページで特定の人をブロックする

開始する前に

このガイドは、ページ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_CONTENTMANAGEMODERATEのうち1つまたは複数のタスクを実行できなければなりません。

ベストプラクティス

API呼び出しをテストする場合は、自分のアクセストークンに設定したaccess_tokenパラメーターを含めることができます。ただし、アプリから安全な呼び出しを行う場合は、アクセストークンクラスを使用してください。

リクエストの例は読みやすさのためにフォーマットされています。page_idのように、太字でイタリックになっている値は、実際の値に置き換えてください。

ページ、タスク、トークン

1回のAPIコールで、タスクを実行できるページに関する多くの情報を得ることができます。

ページを取得する

タスクを実行できるすべてのページ、各ページで実行できるタスク、各ページの短期ページアクセストークンのリストを取得するには、ユーザーアクセストークンを使用してGETリクエストを/user_id/accounts エンドポイントに送信します。

リクエストの例

curl -i -X GET 
     "https://graph.facebook.com/user_id/accounts"

成功すると、ページオブジェクトの配列を含むJSON応答をアプリが受け取ります。各ページオブジェクトには以下が含まれています。

  • ページの名前
  • ページのID
  • ページカテゴリ、カテゴリ名、ID
  • 短期ページアクセストークン
  • ユーザーがそのページで実行できるすべてのタスク

応答の例

{
  "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!",
         }'

成功すると、successtrueに設定されたJSON応答をアプリが受け取ります。

Metaのおすすめの変更

時折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",
         }'

成功すると、successtrueに設定された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"},
         }'

成功すると、successtrueに設定された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オブジェクト: レビューを書いた人のnameid
{
  "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
}

次のステップ

ページにリンク、写真、動画を公開する方法を学ぶ。