Jump to content
MediaWiki

API:Tokens

From mediawiki.org
This page is a translated version of the page API:Tokens and the translation is 100% complete.
Diese Seite ist Teil der Dokumentation der MediaWiki action API.
MediaWiki Action API
Grundlagen
Authentifizierung
Benutzerkonten und Benutzer
Seitenoperationen
Suche
Entwicklerwerkzeuge
Tutorials
v · d · e
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".

Für Hilfe bei der Migration von älterem Code, siehe Veraltete Legacy-API-Token-Parameter

API-Dokumentation

Die folgende Dokumentation ist die Ausgabe von Special:ApiHelp/query+tokens, die automatisch von der vorveröffentlichten MediaWiki-Version generiert wird, die auf dieser Seite (MediaWiki.org) läuft.

meta=tokens

(main | query | tokens)

Gets tokens for data-modifying actions.

Specific parameter:
Other general parameters are available.
type

Types of token to request.

Values (separate with | or alternative): createaccount, csrf, deleteglobalaccount, login, patrol, rollback, setglobalaccountstatus, userrights, watch
To specify all values, use *.
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
"""
importrequests
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 );
// Wikis such as Wikimedia Commons require that you also set a user agent through CURLOPT_USERAGENT
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
echo( $result['query']['tokens']['logintoken'] . "\n" );

Perl

#!/usr/bin/perl
# tokens.pl
# MediaWiki API Demos
# Demo of `Token` module: Fetch token of type `login`
# WTFPL
usestrict;
usewarnings;
useJSON;
useLWP::UserAgent;
useURI;
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";

Node.js

/*
 tokens.js
 MediaWiki API Demos
 Demo of `Token` module: Fetch token of type `login`
 MIT License
*/
varrequest=require('request'),
url="https://www.mediawiki.org/w/api.php";
varparams={
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
*/
varparams={
action:'query',
meta:'tokens',
type:'csrf',
format:'json'
},
api=newmw.Api();
api.get(params).done(function(data){
console.log(data.query.tokens.csrftoken);
});

BASH

exportMW_URL="https://www.mediawiki.org/w/"
exportAPI_URL="api.php"
# 0ドル <token type>
# mainly csrf and login
functionget-token(){
API_URL="api.php"
RESULT=$(curl-fsSL-XPOST\
-daction=query\
-dmeta=tokens\
-dtype="1ドル"\
-dformat=json\
-ccookie.txt\
-bcookie.txt\
"${MW_URL}${API_URL}")
RESULT=${RESULT/*token\":\"}
TOKEN=${RESULT%\\\"*}
echo"$TOKEN"
}
TOKEN=$(get-tokenlogin)

Mögliche Fehler

Code Info

Parametergeschichte

  • v1.27: Eingeführt login, createaccount

Siehe auch

AltStyle によって変換されたページ (->オリジナル) /