API:Tokens

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 • ‎Deutsch (Sie-Form)‎ • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎română • ‎русский • ‎українська • ‎ไทย • ‎中文 • ‎日本語
MediaWiki Version:
1.24

Das API:Tokens-Modul bietet Tokens, die für datenmodifizierende Aktionen, wie das Logging, die Bearbeitung und das Verschieben einer Seite und das Beobachten und Überwachen von Änderungen notwendig sind. Für jede Aktion brauchst du ein eigenes Token. Zum Beispiel: Wenn du dich in einem Wiki mit der Action-API anmelden willst, dann brauchst du ein Token des Typs “login”.

API-Dokumentation


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]

Beispiel

GET-Anfrage

Antwort

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

Beispielcode

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 );
} );

Mögliche Fehler

Code Info

Parametergeschichte

  • v1.27: Eingeführt login, createaccount

Siehe auch