واجهة برمجة التطبيقات:Tokens
Appearance
| هذه الصفحة جزء من توثيق واجهة برمجة تطبيقات ميدياويكي التي تحمل اسم Action. |
| إصدار ميدياويكي: | ≥ 1.24 |
تقدم وحدة واجهة برمجة التطبيقات:Tokens البرمجية الرموز المطلوبة لتنفيذ التصرفات التي تعدل بيانات مثل القيد في السجل أو التعديل أو نقل صفحة، وكذا مراقبة التغييرات ومتابعتها. لكل تصرف تحتاج للحصول على نوع محدد من الرموز. على سبيل المثال: لو كنت ترغب في تسجيل الدخول إلى موقع ويكي مستخدمًا واجهة برمجة التطبيقات لتطبيق Action، سوف تحتاج لرمز من النوع «login» كي تواصل العمل.
للمساعدة في ترحيل كود قديم، ارجع إلى تقادم متغيرات رموز واجهة برمجة التطبيقات القديمة
توثيق واجهة برمجة التطبيقات
مثال
طلب 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 );
// 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
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";
Node.js
/*
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 );
} );
BASH
export MW_URL="https://www.mediawiki.org/w/"
export API_URL="api.php"
# $0 <token type>
# mainly csrf and login
function get-token(){
API_URL="api.php"
RESULT=$(curl -fsSL -X POST \
-d action=query \
-d meta=tokens \
-d type="$1" \
-d format=json \
-c cookie.txt \
-b cookie.txt \
"${MW_URL}${API_URL}")
RESULT=${RESULT/*token\":\"}
TOKEN=${RESULT%\\\"*}
echo "$TOKEN"
}
TOKEN=$(get-token login)
الأخطاء المحتملة
| الكود | معلومات |
|---|
تاريخ المتغيرات
- v1.27: إضافة
login,createaccount
انظر أيضا
- API:Extensions#Edit token
- سبيل متقادم للحصول على الرموز: API:Tokens (action)