API:삭제

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Delete and the translation is 19% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Hausa • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎română • ‎български • ‎русский • ‎العربية • ‎سنڌي • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

POST request to delete a page.

미디어위키 버전: 1.12

API documentation


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.

Parameters:
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):
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 or do not change watch.

One of the following values: watch, unwatch, preferences, nochange
Default: preferences
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.

예제

The process has four steps:

  1. Fetch login token from API:토큰 .
  2. Send a POST request with the fetched login token and user information to the API.
  3. Retrieve a CSRF token when logged in.
  4. 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
    }
}

Sample code

delete.py

#!/usr/bin/python3

"""
    delete.py

    MediaWiki Action API Code Samples
    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"

# Step 1: 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']

# Step 2: 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"
}

R = S.post(URL, data=PARAMS_3)
DATA = R.json()

print(DATA)

가능한 오류

코드 정보
missingtitle 지정한 페이지가 존재하지 않습니다.
notoken token 변수는 설정해야 합니다.
badtoken 잘못된 CSRF 토큰.
permissiondenied 이 문서 삭제하기에 대한 권한이 없습니다.
대부분의 위키에서는 문서 삭제하기는 관리자에 한정되어 있지만 다른 위키는 엄격한 규칙이 있을 수 있습니다.
cantdelete "title" 문서나 파일을 삭제할 수 없습니다.

이미 삭제되었을 수도 있습니다.

Parameter History

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

Additional notes

  • 오래된 버전의 경우 편집 토큰을 가져오기 위해 API:Tokens (action) 또는 API:Info 를 사용할 수 있습니다.
  • 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.

사용자의 .css 문서의 삭제에는 예를 들어 editusercss 권한도 필요합니다.