投稿

このガイドでは、投稿の作成、公開、更新の方法、Facebookページの投稿にページとして返信する方法、ページAPIを使ってMetaから投稿を削除する方法について説明されています。

開始する前に

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を投稿のテキストに設定
  • linkを該当URLに設定(リンクを投稿する場合)
  • publishedを、投稿を即座に公開する場合(デフォルト)はtrue、後で公開する場合はfalseに設定
    • falseに設定する場合は、scheduled_publish_timeを含めます。日付は以下のいずれかの形式です。
      • UNIXタイムスタンプ整数[秒数] (例: 1530432000)
      • ISO 8061タイムスタンプ文字列(例: 2018-09-01T10:15:30+01:00)
      • PHPのstrtotime()で解析可能な文字列(例: +2 weekstomorrow)

スケジュール投稿に関する注意点

  • 公開日は、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のドキュメントをご覧ください。

投稿を取得する

ページ投稿のリストを取得するには、GETリクエストを/page_id/feedエンドポイントに送信します。

リクエストの例

読みやすくするためにフォーマットしています。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 (permalink)は、https://www.facebook.com/page_post_idです。

投稿を更新する

ページ投稿を更新するには、更新するパラメーターを新しい内容に設定したPOSTリクエストを、/page_post_idエンドポイントに対して送信します。

リクエストの例

読みやすくするためにフォーマットしています。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
}

次のステップ

ページに投稿やコメントをした特定の人またはページの@メンションや、ページ投稿へのコメントの方法を確認してください。