💬 GPChat ← Toutes les APIs
Contenus

Stories & Polls API

Publiez des stories et créez des sondages au nom d'un utilisateur ayant autorisé votre application via Login with GPChat.

Authentification exclusivement par token OAuth2 (jamais de clé API) — une story ou un sondage est toujours créé au nom d'une personne consentante, jamais d'un bot.

Stories

Publier un élément de story

POST /publicCreateStory — scope stories:write
ChampDescription
typetext · image · video
textRequis pour type: text
imageUrlRequis pour type: image
videoUrl / thumbnailUrlRequis pour type: video
curl -X POST https://api.gpchat.cm/v1/stories \
  -H "Authorization: Bearer gpat_..." \
  -H "Content-Type: application/json" \
  -d '{ "type": "text", "text": "Publié depuis mon intégration !" }'
Limitation actuelle : pas de légende, de durée personnalisée, de musique ni de story audio (le modèle backend ne les porte pas encore) — texte, image et vidéo uniquement.

Lire mes stories

GET /publicGetMyStories — scope stories:read
curl https://api.gpchat.cm/v1/stories/mine \
  -H "Authorization: Bearer gpat_..."

Supprimer une story

DELETE /publicDeleteStory — scope stories:write
curl -X DELETE https://api.gpchat.cm/v1/stories/delete \
  -H "Authorization: Bearer gpat_..." \
  -H "Content-Type: application/json" \
  -d '{ "storyId": "STORY_ID" }'

Sondages

Un sondage vit comme un message spécial dans une conversation 1-à-1 ou un groupe — indiquez toujours groupId ou receiverId.

Créer un sondage

POST /publicCreatePoll — scope polls:write
curl -X POST https://api.gpchat.cm/v1/polls \
  -H "Authorization: Bearer gpat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "groupId": "GROUP_ID",
    "question": "On se voit quand ?",
    "options": ["Samedi", "Dimanche"],
    "allowMultipleAnswers": false
  }'

Voter

POST /publicVotePoll — scope polls:write
curl -X POST https://api.gpchat.cm/v1/polls/vote \
  -H "Authorization: Bearer gpat_..." \
  -H "Content-Type: application/json" \
  -d '{ "groupId": "GROUP_ID", "messageId": "MSG_ID", "optionId": "OPTION_ID" }'

Voter deux fois pour la même option retire le vote (bascule). Un nouveau vote sur une autre option remplace le précédent, sauf si le sondage autorise les réponses multiples.

Clore un sondage

POST /publicClosePoll — scope polls:write
curl -X POST https://api.gpchat.cm/v1/polls/close \
  -H "Authorization: Bearer gpat_..." \
  -H "Content-Type: application/json" \
  -d '{ "groupId": "GROUP_ID", "messageId": "MSG_ID" }'
Seul le créateur du sondage peut le clore.