API:Delete/fr
![]() | Cette page fait partie de la documentation de l'API MediaWiki Action. |
Requête POST pour supprimer une page. Les pages peuvent être restaurées avec la méthode API:Undelete .
Version de MediaWiki : | ≥ 1.12 |
Documentation de l'API
![]() | La documentation qui suit est le résultat de Special: |
action=delete
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0-or-later
Delete a page.
- title
Title of the page to delete. Cannot be used together with pageid.
- pageid
Page ID of the page to delete. Cannot be used together with title.
- Type: integer
- reason
Reason for the deletion. If not set, an automatically generated reason will be used.
Change tags to apply to the entry in the deletion log.
- Values (separate with | or alternative): AWB, convenient-discussions
- deletetalk
Delete the talk page, if it exists.
- Type: boolean (details)
- watch
- Deprecated.
Add the page to the current user's watchlist.
- Type: boolean (details)
- watchlist
Unconditionally add or remove the page from the current user's watchlist, use preferences (ignored for bot users) or do not change watch.
- One of the following values: nochange, preferences, unwatch, watch
- Default: preferences
- watchlistexpiry
Watchlist expiry timestamp. Omit this parameter entirely to leave the current expiry unchanged.
- Type: expiry (details)
- unwatch
- Deprecated.
Remove the page from the current user's watchlist.
- Type: boolean (details)
- oldimage
The name of the old image to delete as provided by action=query&prop=imageinfo&iiprop=archivename.
- token
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- Delete MediaWiki.
- api.php?action=delete&title=MediaWiki&token=123ABC [open in sandbox]
- Delete MediaWiki with the reason Preparing for move.
- api.php?action=delete&title=MediaWiki&token=123ABC&reason=Preparing%20for%20move [open in sandbox]
Exemple
Le processus possède quatre étapes:
- Récupérer le jeton de connexion de API:Tokens .
- Envoyer une requête POST avec le jeton de connexion récupéré et les informations utilisateur à l'API.
- Récupérer un jeton CSRF une fois connecté.
- Envoyer une requête POST pour supprimer une page avec le jeton CSRF récupéré.
Requête POST
Réponse
{
"delete": {
"title": "page name",
"reason": "content was: 'Test' and the only contributor was Username",
"logid": 1234567
}
}
Exemple de code
Python
#!/usr/bin/python3
"""
delete.py
MediaWiki API Demos
Demo of `Delete` module: post request to delete a page
MIT license
"""
import requests
S = requests.Session()
URL = "https://test.wikipedia.org/w/api.php"
# Step1: Retrieve login token
PARAMS_0 = {
'action':"query",
'meta':"tokens",
'type':"login",
'format':"json"
}
R = S.get(url=URL, params=PARAMS_0)
DATA = R.json()
LOGIN_TOKEN = DATA['query']['tokens']['logintoken']
# Step2: Send a post request to login. Use of main account for login is not
# supported. Obtain credentials via Special:BotPasswords
# (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
PARAMS_1 = {
'action':"login",
'lgname':"your_bot_username",
'lgpassword':"your_bot_password",
'lgtoken':LOGIN_TOKEN,
'format':"json"
}
R = S.post(URL, data=PARAMS_1)
# Step 3: When logged in, retrieve a CSRF token
PARAMS_2 = {
'action':"query",
'meta':"tokens",
'format':"json"
}
R = S.get(url=URL, params=PARAMS_2)
DATA = R.json()
CSRF_TOKEN = DATA['query']['tokens']['csrftoken']
# Step 4: Send a post request to delete a page
PARAMS_3 = {
'action':"delete",
'title':"enter_a_page_title",
'token':CSRF_TOKEN,
'format':"json",
'reason':'the reason for deletion'
}
R = S.post(URL, data=PARAMS_3)
DATA = R.json()
print(DATA)
PHP
<?php
/*
delete.php
MediaWiki API Demos
Demo of `Delete` module: post request to delete a page
MIT license
*/
$endPoint = "http://dev.wiki.local.wmftest.net:8080/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
$csrf_Token = getCSRFToken(); // Step 3
delete( $csrf_Token ); // Step 4
// Step 1: GET request to fetch login token
function getLoginToken() {
global $endPoint;
$params1 = [
"action" => "query",
"meta" => "tokens",
"type" => "login",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params1 );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
return $result["query"]["tokens"]["logintoken"];
}
// Step 2: POST request to log in. Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest( $logintoken ) {
global $endPoint;
$params2 = [
"action" => "login",
"lgname" => "bot_user_name",
"lgpassword" => "bot_password",
"lgtoken" => $logintoken,
"format" => "json"
];
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $endPoint );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params2 ) );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
}
// Step 3: GET request to fetch CSRF token
function getCSRFToken() {
global $endPoint;
$params3 = [
"action" => "query",
"meta" => "tokens",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params3 );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
return $result["query"]["tokens"]["csrftoken"];
}
// Step 4: POST request to delete a page
function delete( $csrftoken ) {
global $endPoint;
$params4 = [
"action" => "delete",
"title" => "Sandbox",
"token" => $csrftoken,
"format" => "json"
];
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $endPoint );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params4 ) );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
echo ( $output );
}
JavaScript
/*
delete.js
MediaWiki API Demos
Demo of `Delete` module: post request to delete a page
MIT license
*/
var request = require('request').defaults({jar: true}),
url = "http://dev.wiki.local.wmftest.net:8080/w/api.php";
// Step 1: GET request to fetch login token
function getLoginToken() {
var params_0 = {
action: "query",
meta: "tokens",
type: "login",
format: "json"
};
request.get({ url: url, qs: params_0 }, function (error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
loginRequest(data.query.tokens.logintoken);
});
}
// Step 2: POST request to log in.
// Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest(login_token) {
var params_1 = {
action: "login",
lgname: "bot_username",
lgpassword: "bot_password",
lgtoken: login_token,
format: "json"
};
request.post({ url: url, form: params_1 }, function (error, res, body) {
if (error) {
return;
}
getCsrfToken();
});
}
// Step 3: GET request to fetch CSRF token
function getCsrfToken() {
var params_2 = {
action: "query",
meta: "tokens",
format: "json"
};
request.get({ url: url, qs: params_2 }, function(error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
delete_page(data.query.tokens.csrftoken);
});
}
// Step 4: POST request to delete a page
function delete_page(csrf_token) {
var params_3 = {
action: "delete",
title: "Test",
token: csrf_token,
format: "json"
};
request.post({ url: url, form: params_3 }, function (error, res, body) {
if (error) {
return;
}
console.log(body);
});
}
// Start From Step 1
getLoginToken();
MediaWiki JS
/*
delete.js
MediaWiki API Demos
Demo of `Delete` module: post request to delete a page
MIT License
*/
var params = {
action: 'delete',
title: 'enter_a_page_title',
format: 'json'
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done( function ( data ) {
console.log( data );
} );
Erreurs possibles
Code | Info |
---|---|
missingtitle | La page que vous avez spécifiée n’existe pas. |
notoken | Le paramètre token doit être défini. |
badtoken | Jeton CSRF non valide. |
permissiondenied | Vous n’avez pas la permission de supprimer cette page. Sur la plupart des wikis, la suppression de pages est réservée aux administrateurs, mais d'autres wikis peuvent avoir des règles différentes. |
cantdelete | Impossible de supprimer la page ou le fichier « title ».
La suppression a peut-être déjà été effectuée par quelqu’un d’autre. |
Historique des paramètres
- v1.38:
deletetalk
ajouté - v1.27:
tags
ajouté - v1.17:
watch
,unwatch
obsolète - v1.14:
pageid
ajouté - v1.13:
watch
,oldimage
,unwatch
ajouté
Notes additionnelles
- Pour les versions plus anciennes de Mediawiki, vous pouvez utiliser API:Tokens (action) ou API:Info/fr pour obtenir un jeton de modification à la place du jeton de connexion.
- En exécutant les extraits de code fournis sur cette page, n'oubliez pas d'utiliser
https://test.wikipedia.org/w/api.php
comme point de terminaison, pour ne pas détruire accidentellement des pages sur les wikis de production. - En plus du droit
delete
, d'autres droits peuvent être nécessaires, en fonction de la localisation et du type de page.
Par exemple, pour supprimer une page .css
d'un utilisateur, il faut également avoir le droit editusercss
.
Voir aussi
- API:Undelete - Restitue une page.