Jump to content
MediaWiki

API:Tokeny

From mediawiki.org
This page is a translated version of the page API:Tokens and the translation is 72% complete.
Ta strona jest częścią dokumentacji API akcji MediaWiki.
API akcji MediaWiki
Podstawy
Uwierzytelnianie
Konta i użytkownicy
Operacje na stronach
Wyszukiwanie
Narzędzia dla programistów
Samouczki
p · o · e
Wersja MediaWiki:
≥ 1.24

API:Tokens module provide tokens required by data-modifying actions such as logging, editing or moving a page, and watching or patrolling changes. For each action, you need a specific type of token. For example: if you want to login to a wiki site via the Action API, you would need a token of type "login" to proceed.

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

All tokens change every time you visit a different page or refresh the page. Tokens are generated for both logged in and logged out users. A secret hash that is used to compute all other tokens is stored in whatever storage engine is specified at Manual:$wgSessionCacheType.

Be careful not to post your tokens publicly, for example in screenshots when trying to get technical help. Someone who has one of your un-expired tokens can do things as if they were logged into your account.

Dokumentacja API

Poniższa dokumentacja jest rezultatem Special:ApiHelp/query+tokens, automatycznie wygenerowanym przez przedwczesną wersję MediaWiki, na której działa ta witryna (MediaWiki.org).

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]

Przykłady

Żądanie GET

Odpowiedź

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

Przykładowy kod

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)

Możliwe błędy

Kod Info

Historia parametrów

  • v1.27: Wprowadzono login, createaccount

Zobacz też

  • Deprecated method of obtaining tokens:

API:Tokens (action)

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