Platforms

Facebook

Page posts, multi-photo feeds, Reels, and the options only Facebook has.

Facebook is the most permissive of the five: text, links, one image, several images, and video all work.

Pages only

CuteDyno publishes to Facebook Pages, not personal profiles. Meta does not allow API posting to profiles, so there is nothing to configure.

The person connecting must have a content or admin role on the Page. If a Page is missing from the list after connecting, that is almost always the reason — Meta only returns Pages the user can act on.

await cutedyno.posts.create({
  content: 'We wrote up how we source our beans.',
  accountIds: [facebookPageId],
});

Facebook is the only platform that publishes a text-only post. A link in the text is unfurled by Facebook into a preview card.

Images

One image, or several in one feed post:

await cutedyno.posts.create({
  content: 'Roastery day.',
  media: images.map((url) => ({ type: 'image', url })),
  accountIds: [facebookPageId],
  platforms: {
    facebook: {
      alt_text_custom: 'Coffee beans cooling in the roaster drum',
      place: '109637905730051',
    },
  },
});

Multi-photo posts upload each image separately and then attach them to a single feed post, so a post with eight images takes noticeably longer than one with one.

Video becomes a Reel

await cutedyno.posts.create({
  content: 'Sixty seconds inside the roastery.',
  media: [{ type: 'video', url: videoUrl }],
  accountIds: [facebookPageId],
});

Video is published as a Facebook Reel. Facebook downloads the file, processes it, and CuteDyno polls for about two minutes before reporting a timeout — long videos occasionally exceed that and land as a failure even though Facebook eventually publishes them. Check the Page before retrying.

Options

OptionEffect
privacy{ "value": "PUBLIC" | "FRIENDS" | "SELF" }. Audience for the post.
placeFacebook Place ID to tag.
alt_text_customAlt text for the image.
no_storyPublish without also generating a story.

alt_text_custom is worth setting. Facebook generates alt text automatically and it is usually poor; a caption written by you is better for the people relying on it.

Failures worth handling

MessageMeaning
Video processing failedFacebook rejected the file, usually codec or length.
Video publishing timeoutProcessing outlasted the polling window. Check the Page before retrying.
Access denied. Please check your permissions.The connected user lost their Page role.
Authentication failed. Please reconnect your account.Token revoked. Reconnect.

Analytics

Views, likes, comments, shares, and reach per post, for both feed posts and Reels, plus follower counts and audience demographics by country and city.

Comments

Fully supported. Comments on Page posts arrive as comment.received webhooks, appear in GET /v1/comments, and can be replied to, hidden, or deleted.