API:Токены

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

Other languages:
Deutsch • ‎English • ‎dansk • ‎español • ‎français • ‎polski • ‎română • ‎русский • ‎ไทย • ‎中文 • ‎日本語
Версия MediaWiki: 1.24

Модуль API tokens позволяет получить токены, необходимые для выполнения изменяющих данные вики действий. Среди них протоколируемые действия, редактирование и переименовывание страниц, изменение списка наблюдения и патрулирование правок. Для каждого действия необходим токен какого-либо конкретного типа. Например, если вы хотите войти в учётную запись вики посредством API, вам понадобится токен типа «login» для выполнения этой операции.

Документация по API


meta=tokens

(main | query | tokens)

Gets tokens for data-modifying actions.

Parameter:
type

Types of token to request.

Values (separate with | or alternative): createaccount, csrf, deleteglobalaccount, login, patrol, rollback, setglobalaccountstatus, userrights, watch
Default: csrf
Examples:
Retrieve a csrf token (the default).
api.php?action=query&meta=tokens [open in sandbox]
Retrieve a watch token and a patrol token.
api.php?action=query&meta=tokens&type=watch|patrol [open in sandbox]

Пример

GET-запрос

Ответ

{
    "batchcomplete": "",
    "query": {
        "tokens": {
            "logintoken": "9ed1499d99c0c34c73faa07157b3b6075b427365+\\"
        }
    }
}

Пример кода

Python

#!/usr/bin/python3

"""
    tokens.py
    MediaWiki API Demos
    Demo of `Token` module: Fetch token of type `login`
    MIT License
"""

import requests

S = requests.Session()

URL = "https://www.mediawiki.org/w/api.php"

PARAMS = {
    "action": "query",
    "meta": "tokens",
    "type": "login",
    "format": "json"
}

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

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

print(LOGIN_TOKEN)

PHP

<?php

/*
    tokens.php

    MediaWiki API Demos
    Demo of `Token` module: Fetch token of type `login`

    MIT License
*/

$endPoint = "https://www.mediawiki.org/w/api.php";
$params = [
    "action" => "query",
    "meta" => "tokens",
    "type" => "login",
    "format" => "json"
];

$url = $endPoint . "?" . http_build_query( $params );

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );

$result = json_decode( $output, true );
echo( $result['query']['tokens']['logintoken'] . "\n" );

JavaScript

/*
    tokens.js
    MediaWiki API Demos
    Demo of `Token` module: Fetch token of type `login`
    MIT License
*/

var request = require('request'),
    url = "https://www.mediawiki.org/w/api.php";

var params = {
    action: "query",
    meta: "tokens",
    type: "login",
    format: "json"
};

request.get( { url: url, qs: params }, function( error, response, body ){
    body = JSON.parse( body );
    console.log( body.query.tokens.logintoken );
});

MediaWiki JS

/*
    tokens.js
    MediaWiki API Demos
    Demo of `Token` module: Fetch token of type `csrf`
    MIT License
*/

var params = {
		action: 'query',
		meta: 'tokens',
		type: 'csrf',
		format: 'json'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	console.log( data.query.tokens.csrftoken );
} );


Возможные ошибки

Код Информация
Unrecognized value for parameter "type": xxx Token type 'xxx is not valid

История параметров

  • v1.27: Введены login, createaccount

См. также