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.
Text and links
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
| Option | Effect |
|---|---|
privacy | { "value": "PUBLIC" | "FRIENDS" | "SELF" }. Audience for the post. |
place | Facebook Place ID to tag. |
alt_text_custom | Alt text for the image. |
no_story | Publish 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
| Message | Meaning |
|---|---|
| Video processing failed | Facebook rejected the file, usually codec or length. |
| Video publishing timeout | Processing 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.