API:Токены

This page is a translated version of the page API:Tokens and the translation is 94% complete.
Версия MediaWiki:
1.24

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

For help in migrating older code, refer to Deprecation of legacy API token parameters

Документация по 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" );

Perl

#!/usr/bin/perl

# token.pl
# MediaWiki API Demos
# Demo of `Token` module: Fetch token of type `login`
# WTFPL

use strict;
use warnings;
use JSON;
use LWP::UserAgent;
use URI;

my $url = URI->new('https://www.mediawiki.org/w/api.php');
my %params = (
	'action' => 'query',
	'meta'   => 'tokens',
	'type'   => 'login',
	'format' => 'json',
);
$url->query_form(%params);
my $ua = LWP::UserAgent->new();
my $response = $ua->get($url);
my $data = JSON::decode_json($response->content);
my $login_token = $data->{'query'}{'tokens'}{'logintoken'};
print "$login_token\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 );
} );

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

Код Информация

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

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

Смотрите также