API:Tag/fr

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Tag and the translation is 39% complete.
Other languages:
English • ‎français • ‎italiano • ‎русский • ‎中文 • ‎日本語 • ‎한국어

POST request to add or remove tags from individual revisions or log entries.

Version de MediaWiki : 1.25

Documentation de l'API


action=tag

(main | tag)
  • This module requires read rights.
  • This module requires write rights.
  • This module only accepts POST requests.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

Add or remove change tags from individual revisions or log entries.

Parameters:
rcid

One or more recent changes IDs from which to add or remove the tag.

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients allowed higher limits).
revid

One or more revision IDs from which to add or remove the tag.

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients allowed higher limits).
logid

One or more log entry IDs from which to add or remove the tag.

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients allowed higher limits).
add

Tags to add. Only manually defined tags can be added.

Values (separate with | or alternative): possible vandalism, repeating characters
remove

Tags to remove. Only tags that are either manually defined or completely undefined can be removed.

Separate values with | or alternative.
Maximum number of values is 50 (500 for clients allowed higher limits).
reason

Reason for the change.

Default: (empty)
tags

Tags to apply to the log entry that will be created as a result of this action.

Values (separate with | or alternative): possible vandalism, repeating characters
token

A "csrf" token retrieved from action=query&meta=tokens

This parameter is required.
Examples:
Add the vandalism tag to revision ID 123 without specifying a reason
api.php?action=tag&revid=123&add=vandalism&token=123ABC [open in sandbox]
Remove the spam tag from log entry ID 123 with the reason Wrongly applied
api.php?action=tag&logid=123&remove=spam&reason=Wrongly+applied&token=123ABC [open in sandbox]

Exemple

Making any POST request is a multi-step process:

  1. Log in, via one of the methods described on API:Authentification .
  2. GET an edit/CSRF token as shown here API:Tokens/fr
  3. Send a POST request, with the CSRF token, to add or remove tags from individual revisions or log entries.

The sample codes below cover these steps.

Requête POST

Remove the spam tag from log entry ID 123 with the reason Wrongly applied.

Réponse

{
    "tag": [
        {
            "logid": 123,
            "status": "success",
            "noop": ""
        }
    ]
}

Exemple de code

Python

#!/usr/bin/python3

"""
    tag.py

    MediaWiki API Demos
    Demo of `Tag` module: Remove the spam tag from log entry ID 123 with the reason Wrongly 
    applied

    MIT license
"""
import requests

S = requests.Session()

URL = "https://test.wikipedia.org/w/api.php"

# Step 1: Retrieve a login token
PARAMS_1 = {
    "action": "query",
    "meta": "tokens",
    "type": "login",
    "format": "json"
}

R = S.get(url=URL, params=PARAMS_1)
DATA = R.json()

LOGIN_TOKEN = DATA['query']['tokens']['logintoken']

# Step 2: Send a POST request to log in. For this login
# method, obtain credentials by first visiting
# https://www.test.wikipedia.org/wiki/Manual:Bot_passwords
# See https://www.mediawiki.org/wiki/API:Login for more
# information on log in methods.
PARAMS_2 = {
    "action": "login",
    "lgname": "user_name",
    "lgpassword": "password",
    "format": "json",
    "lgtoken": LOGIN_TOKEN
}

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

# Step 3: While logged in, retrieve a CSRF token
PARAMS_3 = {
    "action": "query",
    "meta": "tokens",
    "format": "json"
}

R = S.get(url=URL, params=PARAMS_3)
DATA = R.json()

CSRF_TOKEN = DATA["query"]["tokens"]["csrftoken"]

# Step 4: Send a POST request to remove the spam tag from log entry ID 123
# with the reason Wrongly applied

PARAMS_4 = {
    "token":CSRF_TOKEN,
    "action":"tag",
    "format":"json",
    "logid":"123",
    "remove":"spam",
    "reason":"Wrongly applied"
    }

R = S.post(URL, data=PARAMS_4)
DATA = R.text

print(DATA)

PHP

<?php

/*
    tag.php

    MediaWiki API Demos
    Demo of `Tag` module: Remove the spam tag from log entry ID 123 with the reason Wrongly 
    applied

    MIT license
*/
$endPoint = "https://test.wikipedia.org/w/api.php";

$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
$csrf_Token = getCSRFToken(); // Step 3
stashEdit( $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: Send a POST request  to remove the spam tag from log entry ID 123 
// with the reason Wrongly applied
function stashEdit( $csrftoken ) {
	global $endPoint;
	
	$params4 = [
		"action" => "tag",
		"format" => "json",
                "token" => $csrftoken,
                "logid" => "123",
                "remove" => "spam",
                "reason" => "Wrongly applied"

	];
  
	$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" );

	$response = curl_exec($ch);
	curl_close($ch);

	echo ($response);
}

JavaScript

/*
    tag.js

    MediaWiki API Demos
    Demo of `Tag` module: Remove the spam tag from log entry ID 123 with the reason Wrongly 
    applied

    MIT license
*/
var request = require("request").defaults({jar: true}),
url = "https://test.wikipedia.org/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);
        stashEdit(data.query.tokens.csrftoken);
    });
}

// Step 4: remove the spam tag from log entry ID 123 with the reason Wrongly applied
function stashEdit(csrf_token) {
    var params_3 = {
        action: "compare",
        format: "json",
        token: csrf_token,
        logid: "123",
        remove: "spam",
        reason: "Wrongly applied"
    };
    request.post({ url: url, form: params_3 }, function(error, res, body) {
        if (error) {
            return;
        }
        console.log(body);
    });
}

// Start From Step 1
getLoginToken();

MediaWiki JS

/*
    tag.js

    MediaWiki API Demos
    Demo of `Tag` module: Remove the spam tag from log entry ID 123 with the reason Wrongly 
    applied

    MIT license
*/

var params = {
    
    action: "compare",
    format: "json",
    token: csrf_token,
    logid: "123",
    remove: "spam",
    reason: "Wrongly applied"
},
api = new mw.Api();

api.postWithToken( 'csrf', params ).done( function ( data ) {
console.log( data );
} );

Erreurs possibles

Code Info
apierror-blocked Vous avez été bloqué pour modifier.
apierror-nosuchlogid Il n’y a pas d’entrée de journal avec l’ID logid.
apierror-nosuchrcid Il n’y a pas de modification récente avec l’ID rcid.
apierror-nosuchrevid Il n’y a pas de révision d’ID revid.

Historique des paramètres

  • v1.29: Introduced tags