Bonjour à tous et en particulier à Woluweb.
J'ai écouté avec beaucoup d'intérêt la vidéo de la conférence qu'a donnée Marc Dechèvre lors du Joomladay 2023 à Metz. J'ai essayé de mettre en pratique son script d'ajout d'un article, mais je n'y arrive pas. J'ai agi ainsi :
J'ai donc recopié le token d'un super user dans le script (développé plus bas sans le token), j'ai mis l'url de mon site (ici baptisé https://monsite), j'ai intitulé mon script api-post.php et l'ai téléversé dans l'arborescence de mon site. Quand ensuite je tape https://monsite/api/index.php/v1 j'obtiens un message d'erreur 404 title: ressource not found.
Voici le script :
<?php
// Before passing the HTTP METHOD to CURL
$curl = curl_init();
$url = 'https://monsite/api/index.php/v1';
// Put your Joomla! Api token in a safe place, for example a password manager or a vault storing secrets
// We should not use environment variables to store secrets.
// Here is why: https://www.trendmicro.com/en_us/res...g-secrets.html
$token = 'token du super user de monsite';
$categoryId = 2; // Joomla's default "Uncategorized" Category
$data = [
'title' => 'API',
'alias' => 'api',
'articletext' => 'I have no idea, et c'est dommage...',
'catid' => $categoryId,
'language' => '*',
'metadesc' => '',
'metakey' => '',
];
$dataString = json_encode($data);
// HTTP request headers
$headers = [
'Accept: application/vnd.api+json',
'Content-Type: application/json',
'Content-Length: ' . mb_strlen($dataString),
sprintf('X-Joomla-Token: %s', trim($token)),
];
curl_setopt_array($curl, [
CURLOPT_URL => sprintf('%s/%s',$url,'content/articles'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => 'utf-8',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2TLS,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $dataString,
CURLOPT_HTTPHEADER => $headers,
]
);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Quelqu'un peut-il me dire pourquoi ça ne marche pas ? D'avance merci pour votre aide.
J'ai écouté avec beaucoup d'intérêt la vidéo de la conférence qu'a donnée Marc Dechèvre lors du Joomladay 2023 à Metz. J'ai essayé de mettre en pratique son script d'ajout d'un article, mais je n'y arrive pas. J'ai agi ainsi :
J'ai donc recopié le token d'un super user dans le script (développé plus bas sans le token), j'ai mis l'url de mon site (ici baptisé https://monsite), j'ai intitulé mon script api-post.php et l'ai téléversé dans l'arborescence de mon site. Quand ensuite je tape https://monsite/api/index.php/v1 j'obtiens un message d'erreur 404 title: ressource not found.
Voici le script :
<?php
// Before passing the HTTP METHOD to CURL
$curl = curl_init();
$url = 'https://monsite/api/index.php/v1';
// Put your Joomla! Api token in a safe place, for example a password manager or a vault storing secrets
// We should not use environment variables to store secrets.
// Here is why: https://www.trendmicro.com/en_us/res...g-secrets.html
$token = 'token du super user de monsite';
$categoryId = 2; // Joomla's default "Uncategorized" Category
$data = [
'title' => 'API',
'alias' => 'api',
'articletext' => 'I have no idea, et c'est dommage...',
'catid' => $categoryId,
'language' => '*',
'metadesc' => '',
'metakey' => '',
];
$dataString = json_encode($data);
// HTTP request headers
$headers = [
'Accept: application/vnd.api+json',
'Content-Type: application/json',
'Content-Length: ' . mb_strlen($dataString),
sprintf('X-Joomla-Token: %s', trim($token)),
];
curl_setopt_array($curl, [
CURLOPT_URL => sprintf('%s/%s',$url,'content/articles'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => 'utf-8',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2TLS,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $dataString,
CURLOPT_HTTPHEADER => $headers,
]
);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Quelqu'un peut-il me dire pourquoi ça ne marche pas ? D'avance merci pour votre aide.
Commentaire