このドキュメントでは、FacebookストーリーズAPIを使用してストーリーズをFacebookページで公開する方法を説明します。
ストーリーズを公開するには、以下の手順を実行します。
このガイドは、ページAPIの概要を読み、必要なコンポーネントを実装し、スタートガイドの手順を完了していることを前提としています。
Facebookログインまたはビジネス向けFacebookログインを実装し、アプリユーザーのFacebookページにアクセスしたりページアクセストークンを受け取ったりするために必要なアクセス許可をアプリユーザーに求める必要があります。
アプリユーザーは、ページアクセストークンで表示するページでCREATE_CONTENT
タスクを実行でき、アプリに次のアクセス許可を付与できる必要があります。
pages_manage_posts
pages_read_engagement
pages_show_list
APIリクエストでビジネスシステムユーザーを使用している場合は、business_management
アクセス許可も必要です。
以下の仕様を満たす写真や動画を提供する必要があります。
プロパティ | 仕様 |
---|---|
ファイルタイプ | .jpeg、.bmp、.png、.gif、.tiff |
ファイルサイズ | ファイルは4MBを超えることはできません。.pngファイルについては、1MBを超えると画像が粗くなる可能性があるため、1MB以下にすることをおすすめします。 |
プロパティ | 仕様 | ||
---|---|---|---|
ファイルタイプ | .mp4 (推奨) | ||
アスペクト比 | 9 x 16 | ||
解像度 | 1080 x 1920ピクセル(推奨)。最低でも540 x 960ピクセル | ||
フレームレート | 24~60フレーム/秒 | ||
長さ | 3~90秒。 ストーリーズとしてFacebookページに公開されるリール動画は60秒を超えることはできません。 | ||
動画の設定 |
| ||
音声の設定 |
|
GET
リクエストに含めてストーリーズのリストを表示するには、Facebookストーリーズのアーカイブをオンにする必要があります。
API呼び出しをテストする場合は、自分のアクセストークンに設定したaccess_token
パラメーターを含めることができます。ただし、アプリから安全な呼び出しを行う場合は、アクセストークンクラスを使用してください。
このドキュメント内のコードサンプルは、読みやすくするためにフォーマットされています。page_idのように、太字でイタリックになっている値は、実際の値に置き換えてください。
Facebookページで動画ストーリーズを公開するには、Metaサーバーでの動画アップロードセッションを初期化し、Metaサーバーに動画をアップロードしてから、動画ストーリーズを公開します。
アップロードセッションを初期化するには、/page_id/video_stories
エンドポイントにPOST
リクエストを送信します(page_id
はFacebookページのID)。その際、upload_phase
パラメーターをstart
に設定します。
curl -X POST "https://graph.facebook.com/v20.0
/page_id/video_stories" \
-d '{
"upload_phase":"start",
}'
成功すると、アプリは動画のIDと動画をアップロードするFacebookのURLが含まれるJSON応答を受け取ります。
{
"video_id": "video_id",
"upload_url": "https://rupload.facebook.com/video-upload/v20.0
/video_id",
}
アップロードセッションを初期化してアップロードURLを受け取ったら、動画をアップロードできます。次のいずれかの方法でアップロードできます。
ホストされているファイルをアップロードするには、初期化ステップで受け取ったupload_url
エンドポイントに以下のパラメーターを指定して、POST
リクエストを送信します。
file_url
curl -X POST "https://rupload.facebook.com/video-upload/v20.0
/video_id" \
-H "file_url: https://some.cdn.url/video.mp4"
ローカルファイルをアップロードするには、初期化ステップで受け取ったupload_url
エンドポイントに以下のパラメーターを指定して、POST
リクエストを送信します。
0
に設定したoffset
file_size
curl -X POST "https://rupload.facebook.com/video-upload/v20.0
/video_id" \
-H "offset: 0" \
-H "file_size: file_size_in_bytes" \
--data-binary "@/path/to/file/my_video_file.mp4"
成功すると、アプリはsuccess
がtrue
に設定されたJSON応答を受け取ります。
{ "success": true }
動画のアップロードが中断された場合は、アップロードを最初からやり直すことも、再開することもできます。
offset
を0
に設定してPOST
リクエストを再送信します。 offset
をステータス確認で取得したbytes_transfered
値に設定して、POST
リクエストを再送信します。動画のステータスを確認するには、アップロードまたは公開中に、以下のパラメーターを指定して/video_id
エンドポイントにGET
リクエストを送信します。
status
に設定したfields
curl -X GET "https://graph.facebook.com/v20.0
/video_id" \
-d "fields=status"
成功すると、アプリは以下が含まれるJSON応答を受け取ります。
status
オブジェクト
ready
、processing
、expired
、error
のいずれかのvideo_status
uploading_phase
オブジェクト
in_progress
、not_started
、complete
、error
のいずれかに設定されたstatus
bytes_transfered
。これは、アップロードが中断された場合にoffset
の値として使用できます。processing_phase
オブジェクト
in_progress
、not_started
、complete
、error
のいずれかに設定されたstatus
processing_phase
オブジェクト
in_progress
、not_started
、complete
、error
のいずれかに設定されたstatus
published
またはnot_published
に設定されたpublish_status
publish_time
次の応答は、ファイルのアップロードが正しく完了したことを示しています。
{ "status": { "video_status": "processing", "uploading_phase": { "status": "in_progress", "bytes_transfered": 50002 }, "processing_phase": { "status": "not_started" } "publishing_phase": { "status": "not_started", "publish_status": "published", "publish_time": 234523452 } } } |
次の応答は、処理段階でエラーが発生したことを示しています。
{ "status": { "video_status": "processing", "uploading_phase": { "status": "complete" }, "processing_phase": { "status": "not_started", "error": { "message": "Resolution too low. Video must have a minimum resolution of 540p." } } "publishing_phase": { "status": "not_started" } } } |
動画ストーリーズをページに公開するには、以下のパラメーターを指定して、/page_id
/video_stories
エンドポイントにPOST
リクエストを送信します。
video_id
finish
に設定したupload_phase
curl -X POST "https://graph.facebook.com/v20.0
/page_id/video_stories" \
-d '{
"video_id": "video_id",
"upload_phase": "finish"
}'
成功すると、アプリは次のキー/値ペアを含むJSON応答を受け取ります。
true
に設定されたsuccess
post_id
{ "success": true, "post_id": 1234 }
ページ投稿リファレンスを参照して、/page_id/photos
エンドポイントを使って写真をMetaサーバーにアップロードする方法を確認します。必ずpublished
パラメーターをfalse
に設定して含めてください。
写真ストーリーズをページに公開するには、以下のパラメーターを指定して、/page_id
/photo_stories
エンドポイントにPOST
リクエストを送信します。
photo_id
curl -X POST "https://graph.facebook.com/v20.0
/page_id/photo_stories" \
-d '{
"photo_id": "photo_id"
}'
成功すると、アプリは次のキー/値ペアを含むJSON応答を受け取ります。
true
に設定されたsuccess
post_id
{ "success": true, "post_id": 1234 }
ページのすべてのストーリーズのリストと各ストーリーに関するデータを取得するには、GET
リクエストを/
page_id
/stories
エンドポイントに送信します(page_id
は表示するページのID)。
curl -i -X GET "https://graph.facebook.com/v20.0
/page_id/stories"
成功すると、アプリは、ページ上で公開されたストーリーズに関する情報が含まれたオブジェクトの配列のJSON応答を受け取ります。各オブジェクトには以下のキー/値ペアが含まれます。
post_id
PUBLISHED
またはARCHIVED
に設定されたstatus
creation_time
video
またはphoto
に設定されたmedia_type
media_id
url
(例: https://facebook.com/stories/8283482737484972
){ "data": [ { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "video", "media_id": "video_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "ARCHIVED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, ... ], }
ステータス、公開またはアーカイブ、日付(since
とuntil
パラメーターを使用)で、ストーリーズをフィルタリングできます。
このガイドで説明されているエンドポイントとコンセプトについての詳細をご覧ください。