Créer une story avec un fichier
Importez un fichier pour obtenir un jeton, puis créez une story qui utilise ce fichier comme asset principal.
Ajouter un fichier à une story se fait en deux étapes. Vous importez d’abord le fichier et obtenez un jeton en retour. Vous créez ensuite la story en référençant ce jeton dans ses assets.
Importer le fichier
Envoyez le fichier en binaire à l’adresse d’import, avec le même jeton d’accès que pour l’API :
curl --request POST \
--data-binary @./version1.pdf \
--header "Authorization: Bearer kp-oauth2-AXLmAPDkbuEGt7oWaza60N5cFw9i" \
--header "Content-Type: application/octet-stream" \
--header "Content-Disposition: attachment; filename=version1.pdf" \
https://nom-de-votre-plateforme.elium.com/api/upload/file
La réponse est un document JSON avec le jeton qui identifie le fichier importé. Elle contient aussi le nom du fichier, son type MIME et l’adresse d’une miniature ; ces champs sont omis ici, car seul le jeton sert pour la suite :
{
"file": {
"token": ".eJw...xMWA"
},
"success": true
}
Créer la story avec le fichier
Dans les variables, placez le jeton dans assets, avec un identifiant unique universel (UUID) que vous générez vous-même. Reprenez le même UUID dans mainAsset pour faire de ce fichier l’asset principal de la story.
La mutation :
mutation storyPostExample($input: StoryPostInput!) {
storyPost(input: $input) {
story {
slug
version {
title
mainAsset {
__typename
... on FileAsset {
downloadUrl
embed
mimetype
filesize
}
}
}
}
}
}
Les variables :
{
"input": {
"assets": [
{
"type": "FILE",
"file": ".eJw...xMWA",
"uuid": "GENERATED_UUID"
}
],
"mainAsset": "GENERATED_UUID",
"publish": true,
"spaceId": "SPACE_ID",
"title": "My story with a file as main asset"
}
}
La réponse décrit le nouvel asset principal (l’objet embed est abrégé ici) :
{
"data": {
"storyPost": {
"story": {
"slug": 278,
"version": {
"title": "My story with a file as main asset",
"mainAsset": {
"__typename": "FileAsset",
"downloadUrl": "https://nom-de-votre-plateforme.elium.com/api/story/asset/278/download/95/version1.pdf",
"embed": {
"url": "https://nom-de-votre-plateforme.elium.com/api/story/asset/278/download/95/version1.pdf",
"thumbnail_url": "https://nom-de-votre-plateforme.elium.com/api/story/asset/278/thumbnail/95?fallback=false&tclass=xxlarge",
"cover_url": "https://nom-de-votre-plateforme.elium.com/api/story/asset/278/thumbnail/95?fallback=false&tclass=cover",
"filename": "version1.pdf",
"filesize": 1191622,
"mimetype": "application/pdf",
"digest": "9bfd53912a4364ad1ff99e45a70860eda0f64ae13f04d568d24e0d45f67b0c6a"
},
"mimetype": "application/pdf",
"filesize": 1191622
}
}
}
}
}
}
Un fichier qui n’est pas l’asset principal s’ajoute à assets de la même façon, sans mainAsset. Pour l’afficher dans le corps de la story, référencez son UUID avec l’élément <el-asset> décrit dans Format Markdown en entrée.