Glossaire

Meta documente quatre limites différentes pour le champ scheduled_publish_time de Facebook

Taras Shynkarenko
Taras Shynkarenko
•Mis à jour : •10 min de lecture
Le champ scheduled_publish_time de Facebook et ses délais minimum et maximumLe champ scheduled_publish_time de Facebook et ses délais minimum et maximum

TL;DR, Réponse Rapide

10 min de lecture

scheduled_publish_time est le paramètre de la Graph API qui fait paraître plus tard une publication, une photo ou une vidéo non publiée d'une Page Facebook. Sur les publications, les photos et les vidéos, il ne fonctionne qu'avec published=false. Le guide de la Pages API de Meta accepte un timestamp UNIX en secondes, une chaîne ISO 8601 ou n'importe quelle chaîne strtotime(). Toutes les pages de Meta s'accordent sur un minimum de 10 minutes, mais le maximum vaut 30 jours dans le guide de la Pages API, 75 jours dans la référence Page Feed, 6 mois dans la référence Page Videos et 29 jours dans le guide de publication des Reels, où le champ n'accepte qu'un timestamp Unix et s'associe à video_state=SCHEDULED. Meta ne publie aucun message d'erreur précis pour une heure hors plage, seulement le code 100, Invalid parameter.

Qu'est-ce que le champ scheduled_publish_time de Facebook ?

Côté Graph API, le champ scheduled_publish_time de Facebook est le paramètre qui indique à Meta quand une publication de Page non publiée doit paraître, et vous l'envoyez dans le même POST que celui qui crée la publication. Il existe sur /{page-id}/feed pour les publications texte et lien, sur /{page-id}/videos pour la vidéo, et sur /{page-id}/photos pour les photos.

Le guide des publications de la Pages API de Meta le range comme sous-élément de published, et c'est la première chose à comprendre à son sujet : « published set to true to publish the post immediately (default) or false to publish later ». Juste sous cette ligne : « Include scheduled_publish_time if set to false ».

La requête d'exemple du guide ressemble à ceci :

curl -X POST "https://graph.facebook.com/v25.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",
  }'

En cas de succès, la réponse est l'ID d'une publication qui existe mais n'est pas encore apparue sur la Page : {"id": "page_post_id"}. La suite de cette page couvre les trois éléments qui décident si cette requête fonctionne : le drapeau published, le format de l'heure et le délai d'avance.

Le champ scheduled_publish_time exige-t-il published=false ?

Oui. Une publication de Page programmée est une publication non publiée à laquelle on attache une date, donc les deux paramètres vont ensemble. Laissez published à sa valeur par défaut, true, et la publication part immédiatement.

Les photos ajoutent une étape. La référence Page Photos indique qu'une photo utilisée dans une publication programmée doit être téléversée avec temporary=true, et décrit ce paramètre en une ligne : « published must be false, and you can't set scheduled_publish_time ». La programmation se place sur la publication du fil qui joint les photos, pas sur les photos elles-mêmes. Pour une publication à plusieurs photos, Meta écrit : « When the photos are part of a scheduled post, the published, scheduled_publish_time, and unpublished_content_type parameters must be included. » Son exemple envoie published=false, scheduled_publish_time=1512068400 et unpublished_content_type=SCHEDULED vers /feed.

Téléversez ces photos peu de temps avant de créer la publication. Meta précise qu'un téléversement non publié « will remain on Facebook servers for about 24 hours. If you do not publish these photos within 24 hours, we delete them. »

Une coquille dans la référence Page Feed mérite d'être connue avant d'en copier du code. Son tableau de paramètres nomme le drapeau published, tandis que sa section « Posting a Link to a Page » vous dit de « Set the publish parameter to 1 to publish the post immediately or to 0 to create an unpublished post to be published later ». La requête d'exemple sous cette phrase envoie published=1. Utilisez published.

Une horloge analogique posée sur un bureau à côté d'un carnet, pour illustrer les horodatages dont dépend une publication programmée.

Programmer une publication avec plusieurs photos
1
Téléversez chaque photo. Envoyez-la avec temporary=true et sans scheduled_publish_time.
2
Créez la publication rapidement. Meta supprime les téléversements non publiés au bout d'environ 24 heures.
3
Programmez la publication du feed. Envoyez un POST à /feed avec published=false, scheduled_publish_time et unpublished_content_type=SCHEDULED.
L'heure se règle sur la publication du feed qui joint les photos, pas sur les photos elles-mêmes.

Quels formats d'heure le champ scheduled_publish_time accepte-t-il ?

Le guide des publications de la Pages API liste trois formats :

FormatExemple de Meta
« An integer UNIX timestamp [in seconds] »1530432000
Une chaîne de timestamp ISO 86012018-09-01T10:15:30+01:00
« Any string otherwise parsable by PHP's strtotime() »+2 weeks, tomorrow

Le texte du lien dans le guide écrit la norme « ISO 8061 ». Le lien lui-même pointe vers ISO 8601, et l'exemple est une chaîne ISO 8601 valide, donc lisez-y une faute de frappe.

Les pages de référence sont plus restrictives que le guide. La référence Page Feed type le paramètre en timestamp et le décrit comme un « UNIX timestamp indicating when post should go live. » Les références Page Photos et Page Videos le typent toutes deux en int64. Seul le guide mentionne les chaînes. Un entier UNIX en secondes est le seul format que toutes les pages acceptent, alors envoyez celui-là. Date.now() en JavaScript renvoie des millisecondes, ce qui donne un nombre 1 000 fois trop grand, donc divisez avant l'envoi.

Si vous utilisez malgré tout une chaîne relative, Meta vous explique comment vérifier le résultat : « If you are relying on strtotime()'s relative date strings you can read-after-write the scheduled_publish_time of the created post to make sure it is what is expected. » tomorrow dépend de l'horloge du serveur et du fuseau horaire qui l'interprètent, et Meta ne dit rien ni de l'un ni de l'autre.

Relire la valeur a sa propre bizarrerie. Dans la liste des champs de la référence Page Feed, le champ en lecture s'écrit sheduled_publish_time, sans le « c », et il est typé float. La référence Page Post l'écrit correctement, scheduled_publish_time. Demandez l'orthographe correcte.

Combien de temps à l'avance peut-on programmer avec scheduled_publish_time ?

Au moins 10 minutes. Le maximum dépend de la page de Meta que vous lisez, et les pages ne sont pas d'accord.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

Page de MetaEndpointMinimumMaximumFormulation de Meta
Pages API, guide des publications/{page-id}/feed10 minutes30 jours« The publish date must be between 10 minutes and 30 days from the time of the API request. »
Référence Page Feed, paramètre de publication/{page-id}/feed10 minutes75 jours« Must be date between 10 minutes and 75 days from the time of the API request. »
Référence Page Feed, champ en lecture/{page-id}/feed10 minutes75 jours« Date will be between 10 minutes and 75 days from the time of the POST request to publish the post. »
Référence Page Videos/{page-id}/videos10 minutes6 mois« this should be between 10 mins and 6 months from the time of publishing the video. »
Guide de publication des Reels/{page-id}/video_reels10 minutes29 jours« the publish time must be greater than 10 minutes from the current time and within 29 days of the current date, and video_state must be set to 'SCHEDULED'. »
Référence Page Photos/{page-id}/photosNon préciséNon précisé« Time at which an unpublished post should be published (Unix timestamp). Applies to Pages only »

Le plancher de 10 minutes est le seul chiffre sur lequel toutes s'accordent. Celui de Mastodon est deux fois plus court, et sa documentation le dit en une ligne, « Must be at least 5 minutes in the future », ce qui explique pourquoi le scheduled_at de l'API Mastodon exige 5 minutes d'avance.

Le désaccord sur /feed est celui qui compte le plus, car les publications texte, les publications avec lien et les publications programmées à plusieurs photos passent toutes par là. Deux pages de Meta donnent deux plafonds pour le même paramètre sur le même endpoint : le guide dit 30 jours, la référence dit 75. Rien sur l'une ou l'autre page n'indique laquelle est à jour, et aucune ne mentionne l'autre chiffre. Un outil qui autorise 75 jours fonctionnera si la référence a raison, et échouera quelque part entre le jour 31 et le jour 75 si c'est le guide qui a raison. Un outil plafonné à 30 jours fonctionne dans les deux cas. Plafonnez à 30.

Le chiffre des vidéos mérite lui aussi un second regard. Les pages du fil mesurent à partir de « the time of the API request ». La référence vidéo mesure à partir de « the time of publishing the video », ce qui reste ambigu pour une vidéo dont le téléversement se termine quelques minutes après la requête qui l'a lancé. Gardez une marge aux deux bouts.

Les références photo et vidéo de Meta listent aussi plus d'états non publiés qu'elles n'en expliquent. Les deux pages listent des valeurs de unpublished_content_type parmi lesquelles SCHEDULED, SCHEDULED_RECURRING, DRAFT et PUBLISH_PENDING, et aucune ne dit à quoi sert SCHEDULED_RECURRING. Tenez-vous-en à SCHEDULED.

Quelle erreur Meta renvoie-t-il quand l'heure est hors plage ?

Meta n'en publie aucune. Aucune des pages ci-dessus ne cite de message d'erreur pour un scheduled_publish_time trop proche ou trop lointain. Les références Page Videos et Page Post listent toutes deux l'erreur 100, « Invalid parameter », comme échec de validation général, et la documentation de Meta ne va pas plus loin dans la précision.

Construisez votre gestion autour du code. La référence des erreurs de la Marketing API de Meta donne la raison en une ligne : « Error handling should be done using only the Error Codes. The Description string is subject to change without prior notice. » Journalisez les champs message et fbtrace_id pour le débogage, mais faites reposer la logique de nouvelle tentative sur code. Le guide de gestion des erreurs de Meta décrit fbtrace_id comme un « Internal support identifier », c'est-à-dire la valeur à transmettre au support de Meta.

Un rejet lié à la fenêtre horaire n'est pas non plus une erreur à retenter. Relancer la même requête renvoie le même timestamp erroné et obtient le même 100. Validez la fenêtre avant l'appel : au moins 10 minutes et au plus 30 jours d'avance pour /feed, mesurés sur l'horloge de votre serveur en secondes UTC. YouTube programme les mises en ligne avec d'autres champs et d'autres modes d'échec, et chaque champ du flux de programmation de YouTube, avec la façon dont chacun échoue, est traité à part.

Une main qui barre une date sur un calendrier mural en papier, pour illustrer la modification ou l'annulation d'une publication programmée.

Comment modifier ou annuler une publication Facebook programmée ?

Mettez-la à jour avec un POST vers /{page_post_id}, ou supprimez-la avec un DELETE sur le même chemin. Les paramètres de mise à jour de la référence Page Post incluent à la fois scheduled_publish_time et is_published, mais le tableau ne donne à aucun des deux de description au-delà de son propre nom. Le guide de la Pages API ajoute une contrainte : « An app can only update a Page post if the post was made using that app. » Selon cette règle, une publication programmée dans Meta Business Suite n'est pas modifiable par votre application.

Pour trouver les publications programmées, lisez /{page-id}/feed avec le champ is_published. La référence Page Feed le dit directement : « Published and unpublished posts will be returned when querying the /{page-id}/feed endpoint. Use the 'is_publishedfield to return only published posts. » Meta définit ce champ comme un champ qui « Indicates whether a scheduled post was published (applies to scheduled Page Post only, for users post and instantly published posts this value is alwaystrue`). »

Ce comportement du fil piège ceux qui synchronisent les publications d'une Page dans une base de données. Une tâche qui lit /feed sans demander is_published récupère les publications programmées comme si elles étaient en ligne. Demandez toujours ce champ, et filtrez dessus. Pour voir comment différents outils de planification exposent cela selon les réseaux, consultez la comparaison de neuf API de planification pour les réseaux sociaux.

Questions fréquentes

Quel est le délai minimum pour le champ scheduled_publish_time de Facebook ?

Dix minutes. Le guide des publications de la Pages API et la référence Page Feed mesurent le plancher de 10 minutes à partir de la requête à l'API, la référence Page Videos le mesure à partir de la publication de la vidéo, et le guide de publication des Reels exige une heure située à plus de 10 minutes. La référence Page Photos n'indique aucune plage.

Quelle est la fenêtre de programmation maximale d'une publication de Page Facebook via l'API ?

Meta publie deux chiffres pour /feed. Le guide des publications de la Pages API dit 30 jours, et la référence Page Feed dit 75 jours. Pour les vidéos sur /{page-id}/videos, la référence Page Videos dit 6 mois, et pour les Reels sur /{page-id}/video_reels, le guide de publication des Reels dit 29 jours. Plafonner les publications du fil à 30 jours fonctionne quelle que soit la page qui a raison.

Faut-il définir published=false pour utiliser scheduled_publish_time ?

Oui. Le guide de Meta subordonne scheduled_publish_time à la valeur false de published. Avec la valeur par défaut true, la publication paraît immédiatement.

Le champ scheduled_publish_time accepte-t-il une date ISO 8601 ?

Le guide des publications de la Pages API accepte ISO 8601, avec l'exemple 2018-09-01T10:15:30+01:00, ainsi que des chaînes strtotime() comme +2 weeks. Les pages de référence typent le champ en timestamp UNIX ou en int64, donc un entier en secondes est le choix le plus sûr.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

Quelle erreur la Graph API renvoie-t-elle pour un scheduled_publish_time hors de la fenêtre ?

Meta ne documente aucun message précis. Les références Page Videos et Page Post listent le code 100, « Invalid parameter », comme erreur de validation générale. Gérez le code et journalisez le message, puisque Meta prévient que les descriptions peuvent changer sans préavis.

Comment lister les publications programmées d'une Page Facebook via l'API ?

Interrogez /{page-id}/feed et demandez le champ is_published. Meta renvoie ensemble les publications publiées et non publiées sur cet endpoint, et is_published vaut false pour une publication encore programmée.

Le champ scheduled_publish_time se donne-t-il en secondes ou en millisecondes ?

En secondes. Le guide de la Pages API de Meta demande un timestamp UNIX entier en secondes. Date.now() en JavaScript renvoie des millisecondes, soit un nombre 1 000 fois trop grand. Divisez-le par 1 000 avant de l'envoyer.

Le champ scheduled_publish_time utilise-t-il l'UTC ou mon fuseau horaire local ?

Un timestamp UNIX en secondes désigne un instant absolu, il ne porte donc aucun fuseau horaire. Meta ne dit pas quelle horloge ou quel fuseau interprète une chaîne comme tomorrow, alors envoyez plutôt un entier. Vérifiez le minimum de 10 minutes et votre plafond avec l'horloge de votre serveur, en secondes UTC.

Peut-on modifier via l'API une publication programmée dans Meta Business Suite ?

Pas avec sa propre app. Selon le guide de la Pages API, une app ne peut mettre à jour une publication de Page que si elle l'a créée elle-même. Une publication programmée dans Meta Business Suite n'est donc pas modifiable. Celles que votre app a créées se mettent à jour par un POST sur /{page_post_id}.

Le champ scheduled_publish_time fonctionne-t-il pour les Reels Facebook ?

Oui, avec deux différences. Les Reels passent par /{page-id}/video_reels, et le champ n'accepte qu'un timestamp Unix. Il s'associe à video_state=SCHEDULED au lieu de published=false, et le guide de publication des Reels exige une heure à plus de 10 minutes et dans les 29 jours.

Cet article vous a-t-il été utile ?

Dites-nous ce que vous en pensez !

Nous voir plus souvent sur Google

Un clic définit AdaptlyPost comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

AdaptlyPost

AdaptlyPost

Planifiez vos contenus sur toutes les plateformes

Gérez tous vos comptes de réseaux sociaux en un seul endroit avec AdaptlyPost.

Analyses multiplateforme

Boîte sociale

Assistant IA

Termes connexes du glossaire

Articles Connexes