Jump to content
MediaWiki

API:Delete/it

From mediawiki.org
This page is a translated version of the page API:Delete and the translation is 27% complete.
Questa pagina fa parte della documentazione MediaWiki API.
Azione MediaWiki API
Nozioni di base
Autenticazione
Account e utenti
Pagina Operazioni
Cerca
Utilità per gli sviluppatori
Tutorial
v · d · e

POST request to delete a page. Pages can be undeleted with the API:Undelete method.

Versione MediaWiki:
≥ 1.12

API documentation

The following documentation is the output of Special:ApiHelp/delete, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).

action=delete

(main | 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.

Specific parameters:
Other general parameters are available.
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.

tags

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.

Esempio

Il procedimento ha quattro passaggi:

  1. Fetch login token from API:Tokens .
  1. Send a POST request with the fetched login token and user information to the API.
  1. Retrieve a CSRF token when logged in.
  1. Send a post request to delete a page with the fetched CSRF token.

POST request

Response

{
"delete":{
"title":"page name",
"reason":"content was: 'Test' and the only contributor was Username",
"logid":1234567
}
}

Esempio di codice

Python

#!/usr/bin/python3
"""
 delete.py
 MediaWiki API Demos
 Demo of `Delete` module: post request to delete a page
 MIT license
"""
importrequests
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
*/
varrequest=require('request').defaults({jar:true}),
url="http://dev.wiki.local.wmftest.net:8080/w/api.php";
// Step 1: GET request to fetch login token
functiongetLoginToken(){
varparams_0={
action:"query",
meta:"tokens",
type:"login",
format:"json"
};
request.get({url:url,qs:params_0},function(error,res,body){
if(error){
return;
}
vardata=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
functionloginRequest(login_token){
varparams_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
functiongetCsrfToken(){
varparams_2={
action:"query",
meta:"tokens",
format:"json"
};
request.get({url:url,qs:params_2},function(error,res,body){
if(error){
return;
}
vardata=JSON.parse(body);
delete_page(data.query.tokens.csrftoken);
});
}
// Step 4: POST request to delete a page
functiondelete_page(csrf_token){
varparams_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
*/
varparams={
action:'delete',
title:'enter_a_page_title',
format:'json'
},
api=newmw.Api();
api.postWithToken('csrf',params).done(function(data){
console.log(data);
});

Possibili errori

Codice Informazione
missingtitle The page you specified doesn't exist.
notoken The token parameter must be set.
badtoken Token CSRF non valido.
permissiondenied Non si dispone dei permessi necessari per cancellare questa pagina.
On most wikis, deleting pages is restricted to sysops, but other wikis may have different rules.
cantdelete Non è stato possibile cancellare la pagina o il file "title".

Potrebbe essere stato già cancellato da qualcun altro.

Parameter history

  • v1.38: Introduced deletetalk
  • v1.27: Introduced tags
  • v1.17: Deprecated watch, unwatch
  • v1.14: Introduced pageid
  • v1.13: Introduced watch, oldimage, unwatch

Note aggiuntive

  • While executing the code snippets provided on this page, remember to use https://test.wikipedia.org/w/api.php as the endpoint, so that you don't accidentally delete pages on production wikis.
  • In addition to the delete right, other rights may be required, depending on the location and type of page.

Deleting a user's .css page, for example, also requires the editusercss right.

Vedi anche

AltStyle によって変換されたページ (->オリジナル) /