How to Publish Stories with the Facebook Stories API

November 15, 2023

3 min read

Author: Ayrshare Team

Ayrshare Team

Ayrshare Team

Developer Relations

Guides and stories from the Ayrshare team, the unified social media API trusted by more than 10,000 teams.

Ask AI about this article

Opens your AI assistant in a new tab with this article preloaded.

Publish stories with the facebook stories api.

Facebook Stories are one of the most popular ways to publish videos, or photos on Facebook, second in popularity only to Facebook Reels. Facebook has been adding a lot of new features to their API and we’re excited that they just released the ability to post Stories using the Meta Graph API. We were waiting for this announcement since the Instagram Stories API already exists.

Let’s explore and learn how to publish using the new Facebook Stories API.

What Are Facebook Stories?

Facebook Stories have emerged as a compelling way to share moments and messages with friends, family, and followers. But what exactly is a Facebook Story, and why should you consider publishing them?

Facebook Stories are short, ephemeral posts that disappear after 24 hours, remind you of anyone, ahem Snapchat. Located at the top of the Facebook timeline, these snippets offer a quick and casual way to share updates, experiences, or thoughts. Unlike regular Facebook posts, Stories are designed for more spontaneous and less polished content, making them a unique tool for real-time engagement.

You can publish a Story as either a photo or as a video. Here is an example of a Facebook Story photo:

A Facebook Stories Photo
Facebook Stories Photo

Using the Facebook Stories API

If you’re already familiar with the Facebook API, adding Stories API is simple. If you haven’t yet integrated with the Facebook API, we recommend this guide.

Facebook Permissions

You’ll need to be granted the following Facebook permissions. This will require a Meta review and approval, which can take several iterations with the Meta team. Expect a few weeks to several months.

  • pages_manage_posts
  • pages_read_engagement
  • pages_show_list
  • business_management

The business_management permission is a difficult permission to obtain, but you’ll need it if any of your users utilize Meta Business Suite.

Publish a Video to Stories

After you have been granted the permissions, your users have authorized their accounts, and you have the access token, you can start the process of uploading a Story video.

Step 1: Initialize session

The first steps is initializing the upload session. Here is the Javascript (Node.js) example:

javascript

javascript

const initData = await fetch(`https://graph.facebook.com/${page_id}/video_stories?upload_phase=start&access_token=${access_token}`, { method: "POST" }).then(res => res.json());

With the following JSON response:

text

text

{  "video_id": "video_id",  "upload_url": "https://rupload.facebook.com/video-upload/v18.0/video_id",}

Step 2: Upload the video file with a remote URL

Assume you have your video hosted remotely, you can use the upload_url field with your remote URL to upload the file.

First set the header with your remote URL in the file_url:

text

text

{    method: "POST",    headers: {      Authorization: `OAuth ${access_token}`,      file_url: url    }};

Next, POST to the upload_url from the JSON response:

javascript

javascript

const uploadBinaryResponse = await fetch(upload_url, header)    .then((res) => res.json());

The JSON response of a successful video upload:

text

text

{  "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     }  }}

Step 3: Publish the Video to Stories

Finally you can publish the video to Facebook Stories by setting the upload_phase to finsh. Again in JavasScript/Node.js:

text

text

fetch(`https://graph.facebook.com/${page_id}/video_stories?upload_phase=finish&video_id=${video_id}&access_token=${access_token}`, { method: "POST }).then(res => res.json);

If everything worked, you’ll get the following JSON response:

json

json

{  "success": true,  "post_id": 1234}

You can then use the post_id to manage the post, get analytics, retrieve the URL of the post, etc.

Also, you’ll want to do error checking, since we only explained the happy-path and not all of the error scenarios, which Facebook unfortunately doesn’t document.

Publish a Photo to Stories

Publish a photo to Stories is similar to publishing a video.

Step 1: Upload a Photo

You will need to use the Facebook Page Photo API endpoint to upload the photo. Pass in your remote media URL to the photos endpoint:

text

text

fetch(`https://graph.facebook.com/${page_id}/photos?access_token=${access_token}&published=false&url=${encodeURIComponent(url)}`, { method: "POST" }).then(res => res.json());

The response will contain a photo_id, which can then be sent to the publish endpoint:

text

text

fetch(`https://graph.facebook.com/${page_id}/photo_stories?photo_id=${photo_id}&access_token=${access_token}`, { method: "POST }).then(res => res.json());

If successful, the following JSON will be returned:

json

json

{  "success": true,  "post_id": 1234}

An Easier Way to Facebook Stories with an API

An simpler and easier way to use the Facebook Stories API is to use the Ayrshare Social Media API. You can use our Stories API to publish video or photos by just adding one field: stories: true

For example here is how you would send a FB story:

json

json

{    "post": "The description of the video",    "platforms": ["facebook"],    "mediaUrls": ["https://img.ayrshare.com/012/stories.mp4"],    "faceBookOptions": {        "stories": true    }}

Simple as that! You can also post Instagram Stories with the API.

If you want more information, check out our Business Plan.

Written by: Ayrshare Team

Guides and stories from the Ayrshare team, the unified social media API trusted by more than 10,000 teams.

Ayrshare Team

Ayrshare Team

Developer Relations

Guides and stories from the Ayrshare team, the unified social media API trusted by more than 10,000 teams.

Ask AI about this article

Opens your AI assistant in a new tab with this article preloaded.