TL;DR, Réponse Rapide
10 min de lecturescheduled_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.

Quels formats d'heure le champ scheduled_publish_time accepte-t-il ?
Le guide des publications de la Pages API liste trois formats :
| Format | Exemple de Meta |
|---|---|
| « An integer UNIX timestamp [in seconds] » | 1530432000 |
| Une chaîne de timestamp ISO 8601 | 2018-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
Commencez votre essai gratuit de 7 jours
Analyses multiplateforme
Boîte sociale
Assistant IA
| Page de Meta | Endpoint | Minimum | Maximum | Formulation de Meta |
|---|---|---|---|---|
| Pages API, guide des publications | /{page-id}/feed | 10 minutes | 30 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}/feed | 10 minutes | 75 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}/feed | 10 minutes | 75 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}/videos | 10 minutes | 6 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_reels | 10 minutes | 29 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}/photos | Non 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.

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
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.
Mettez cela en pratique avec AdaptlyPost
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
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


Chez Meta, l'en-tête x-app-usage donne trois pourcentages et aucune horloge
Chez Meta, l'en-tête x-app-usage donne call_count, total_time et total_cputime en pourcentages du quota Graph API horaire de l'app, sans heure de reprise.


Heures sautées, heures répétées : comment les planificateurs de réseaux sociaux gèrent les fuseaux horaires
Voici comment les planificateurs de réseaux sociaux gèrent les fuseaux horaires : UTC et nom de zone IANA, heure sautée ou répétée, formats pris par les API.


Le long lived access token Facebook et son horloge de 60 jours
Un long lived access token Facebook dure environ 60 jours, et le jeton de Page que vous en dérivez n'a aucune date d'expiration. Avec l'appel d'échange.
Articles Connexes


Meta impose ses exigences d'images de l'API Instagram dès l'envoi
Meta réduit les exigences d'images de l'API Instagram au JPEG, à 8 MB maximum et à un ratio de 4:5 à 1.91:1, chacune avec son code d'erreur.


Meta fixe la limite de taux de l'API Instagram à 4800 fois vos impressions
Meta fixe la limite de taux de l'API Instagram à 4800 appels par impression sur 24 heures glissantes et publie l'usage dans X-Business-Use-Case-Usage.


Ce que le scope instagram_business_content_publish accorde vraiment
Créer des posts Instagram organiques exige le scope instagram_business_content_publish, qui dépend de instagram_business_basic à chaque appel.

