API:अवरोध
Outdated translations are marked like this.
यह पृष्ठ मीडियाविकि प्रतिक्रिया API प्रलेख का हिस्सा है। |
मीडियाविकि संस्करण: | ≥ 1.12 |
किसी सदस्य को अवरोधित करने या उनसे अवरोध हटाने के लिए POST अनुरोध।
सदस्यों को अवरोधित करना
API प्रलेख
उदाहरण
एक POST अनुरोध करने के लिए कई चरणों का पालन करना पड़ता है:
- API:Login पर वर्णित किसी एक तरीके से लॉग-इन करें।
- एक टोकन को GET करें। यह टोकन संपादन टोकन जैसा है और हर लॉग-इन पर बदलता है।
- किसी सदस्य को अवरोधित करने के लिए टोकन के साथ एक POST अनुरोध भेजें।
POST अनुरोध
सदस्य को एक दिन के लिए अवरोधित करने का उदाहरण, जिसमें खाता निर्माण और ईमेल को अक्षम किया जा रहा है
api.php? action=block& user=Example& expiry=1%20day& reason=Time%20out& nocreate=& noemail=& token=0123456789012345678901234567890123456789%2b%5c [try in ApiSandbox]
जवाब
{
"block": {
"user": "Example",
"userID": 2,
"expiry": "2015-02-25T07:27:50Z",
"id": "8",
"reason": "Time out",
"nocreate": "",
"noemail": ""
}
}
सदस्यों को अवरोधित करने का उदाहरण कोड
Python
#!/usr/bin/python3
"""
block_user.py
MediaWiki API Demos
Demo of `Block` module: sending POST request to block user
MIT license
"""
import requests
S = requests.Session()
URL = "https://test.wikipedia.org/w/api.php"
# Step 1: GET request to fetch login token
PARAMS_0 = {
"action": "query",
"meta": "tokens",
"type": "login",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_0)
DATA = R.json()
LOGIN_TOKEN = DATA['query']['tokens']['logintoken']
# Step 2: POST request to log in. Use of main account for login is not
# supported. Obtain credentials via Special:BotPasswords
# (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
PARAMS_1 = {
"action": "login",
"lgname": "your_bot_username",
"lgpassword": "your_bot_password",
"lgtoken": LOGIN_TOKEN,
"format": "json"
}
R = S.post(URL, data=PARAMS_1)
# Step 3: GET request to fetch CSRF token
PARAMS_2 = {
"action": "query",
"meta": "tokens",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_2)
DATA = R.json()
CSRF_TOKEN = DATA['query']['tokens']['csrftoken']
# Step 4: POST request to block user
PARAMS_3 = {
"action": "block",
"user": "Example",
"expiry": "2015-02-25T07:27:50Z",
"reason": "Time out",
"token": CSRF_TOKEN,
"format": "json"
}
R = S.post(URL, data=PARAMS_3)
DATA = R.json()
print(DATA)
PHP
<?php
/*
block_user.php
MediaWiki API Demos
Demo of `Block` module: sending POST request to block user
MIT license
*/
$endPoint = "http://dev.wiki.local.wmftest.net:8080/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
$csrf_Token = getCSRFToken(); // Step 3
block( $csrf_Token ); // Step 4
// Step 1: GET request to fetch login token
function getLoginToken() {
global $endPoint;
$params1 = [
"action" => "query",
"meta" => "tokens",
"type" => "login",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params1 );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
return $result["query"]["tokens"]["logintoken"];
}
// Step 2: POST request to log in. Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest( $logintoken ) {
global $endPoint;
$params2 = [
"action" => "login",
"lgname" => "bot_user_name",
"lgpassword" => "bot_password",
"lgtoken" => $logintoken,
"format" => "json"
];
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $endPoint );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params2 ) );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
}
// Step 3: GET request to fetch CSRF token
function getCSRFToken() {
global $endPoint;
$params3 = [
"action" => "query",
"meta" => "tokens",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params3 );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
return $result["query"]["tokens"]["csrftoken"];
}
// Step 4: POST request to block user
function block( $csrftoken ) {
global $endPoint;
$params4 = [
"action" => "block",
"user" => "ABCD",
"expiry" => "2020-02-25T07:27:50Z",
"reason" => "API Test",
"token" => $csrftoken,
"format" => "json"
];
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $endPoint );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params4 ) );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );
$output = curl_exec( $ch );
curl_close( $ch );
echo ( $output );
}
JavaScript
/*
block_user.js
MediaWiki API Demos
Demo of `Block` module: sending POST request to block user
MIT license
*/
var request = require('request').defaults({jar: true}),
url = "http://dev.wiki.local.wmftest.net:8080/w/api.php";
// Step 1: GET request to fetch login token
function getLoginToken() {
var params_0 = {
action: "query",
meta: "tokens",
type: "login",
format: "json"
};
request.get({ url: url, qs: params_0 }, function (error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
loginRequest(data.query.tokens.logintoken);
});
}
// Step 2: POST request to log in.
// Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest(login_token) {
var params_1 = {
action: "login",
lgname: "bot_username",
lgpassword: "bot_password",
lgtoken: login_token,
format: "json"
};
request.post({ url: url, form: params_1 }, function (error, res, body) {
if (error) {
return;
}
getCsrfToken();
});
}
// Step 3: GET request to fetch CSRF token
function getCsrfToken() {
var params_2 = {
action: "query",
meta: "tokens",
format: "json"
};
request.get({ url: url, qs: params_2 }, function(error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
block(data.query.tokens.csrftoken);
});
}
// Step 4: POST request to block user
function block(csrf_token) {
var params_3 = {
action: "block",
user: "ABCDEF",
expiry: "2020-02-25T07:27:50Z",
reason: "API Test",
token: csrf_token,
format: "json"
};
request.post({ url: url, form: params_3 }, function (error, res, body) {
if (error) {
return;
}
console.log(body);
});
}
// Start From Step 1
getLoginToken();
MediaWiki JS
/*
block_user.js
MediaWiki API Demos
Demo of `Block` module: sending POST request to block user
MIT License
*/
var params = {
action: 'block',
user: 'ABCD',
expiry: '2020-02-25T07:27:50Z',
reason: 'API Test',
format: 'json'
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done( function ( data ) {
console.log( data );
} );
सदस्यों से अवरोध हटाना
API प्रलेख
उदाहरण
POST अनुरोध
Example से अवरोध हटाना और माफ़ी माँगना
api.php? action=unblock& user=Example& token=0123456789012345678901234567890123456789%2b%5c& reason=Sorry%20Example [try in ApiSandbox]
जवाब
{
"id": "16",
"user": "Example",
"userid": 2,
"reason": "Sorry Example"
}
संभव त्रुटियाँ
कोड अवरोधित करना | जानकारी |
---|---|
alreadyblocked | जिस सदस्य को आपने अवरोधित करने की कोशिश की है वह पहले से ही अवरोधित है |
cantblock | You don't have permission to block users. |
cantblock-email | You don't have permission to block users from sending email through the wiki. |
canthide | You don't have permission to hide usernames from the block log.
इस सुविधा को LocalSettings.php पर स्पष्ट सक्षम करना होगा
|
invalidexpiry | अमान्य समय-सीमा |
invalidip | अमान्य IP पता निर्दिष्ट किया गया |
invalidrange | अमान्य IP रेंज |
notoken | The token parameter must be set. |
nouser | The user parameter must be set. |
pastexpiry | Expiry time "$1" is in the past. |
permissiondenied | You don't have permission to block users.
ज़्यादातर विकियों पर सिर्फ सिसॉप्स की सदस्यों को अवरोधित कर सकते हैं, मगर दूसरे विकियों पर और कड़े नियम हो सकते हैं।
|
rangedisabled | IP रेंजों को अवरोधित करने की सुविधा अक्षम कर दी गई है |
कोड अवरोध हटाना | जानकारी |
---|---|
notarget | या तो id या फिर user पैरामीटर को सेट करना होगा |
notoken | The token parameter must be set. |
idanduser | id और user पैरामीटरों का इस्तेमाल एक साथ नहीं किया जा सकता |
blockedasrange | IP पता "पता" को रेंज "रेंज" के हिस्से के रूप में अवरोधित कर दिया गया था। आप उस विशिष्ट IP से तो अवरोध नहीं हटा सकते, मगर आप रेंज से अवरोध हटा सकते हैं। |
cantunblock | जो अवरोध आपने निर्दिष्ट किया वह नहीं मिला। हो सकता है यह अवरोध पहले ही हटा दिया गया हो |
permissiondenied | You don't have permission to unblock users.
ज़्यादातर विकियों पर सिर्फ सिसॉप्स की सदस्यों को अवरोधित कर सकते हैं, मगर दूसरे विकियों पर अलग नियम हो सकते हैं।
|
पैरमीटरों का इतिहास
- 1.29:
tags
को जोड़ा गया - 1.21:
gettoken
को हटाया गया - 1.20:
gettoken
को पदावनत कर दिया गया - 1.18:
watchuser
को जोड़ा गया - 1.14:
allowusertalk
,reblock
को जोड़ा गया
ये भी देखें
- API:User group membership - समूह से सदस्यों को हटाएँ या उनमें जोड़ें
- API:अवरोध - सभी अवरोधों को सूचीबद्ध करता है