Movatterモバイル変換


[0]ホーム

URL:


Jump to content
MediaWiki
Search

API:Block

From mediawiki.org
Translate this page
Languages:
This page is part of theMediaWiki Action API documentation.
MediaWiki Action API
Basics
Authentication
Accounts and Users
Page Operations
Search
Developer Utilities
Tutorials
v · d · e
MediaWiki version:
1.12

POST request to block or unblock a user.

Blocking users

API documentation

The following documentation is the output ofSpecial:ApiHelp/block, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).

action=block

(main |block)
  • This module requires read rights.
  • This module requires write rights.
  • This module only accepts POST requests.
  • Source:MediaWiki
  • License:GPL-2.0-or-later

Block a user.

Specific parameters:
Other general parameters are available.
id

ID of the block to modify (obtained throughlist=blocks). Cannot be used together withuser,reblock, ornewblock.

Type: integer
user

User to block. Cannot be used together withid.

Type: user, by any of username, IP, Temporary user, IP range and user ID (e.g. "#12345")
userid
Deprecated.

Specifyuser=#ID instead.

Type: integer
expiry

Expiry time. May be relative (e.g.5 months or2 weeks) or absolute (e.g.2014-09-18T12:34:56Z). If set toinfinite,indefinite, ornever, the block will never expire.

Default: never
reason

Reason for block.

Default:(empty)
anononly

Block anonymous users only (i.e. disable anonymous edits for this IP address, including temporary account edits).

Type: boolean (details)
nocreate

Prevent account creation.

Type: boolean (details)
autoblock

Automatically block the last used IP address, and any subsequent IP addresses they try to login from.

Type: boolean (details)
noemail

Prevent user from sending email through the wiki. (Requires theblockemail right).

Type: boolean (details)
hidename

Hide the username from the block log. (Requires thehideuser right).

Type: boolean (details)
allowusertalk

Allow the user to edit their own talk page (depends on$wgBlockAllowsUTEdit).

Type: boolean (details)
reblock

If the user is already blocked by a single block, overwrite the existing block. If the user is blocked more than once, this will fail—use theid parameter instead to specify which block to overwrite. Cannot be used together withid ornewblock.

Type: boolean (details)
newblock

Add another block even if the user is already blocked. Cannot be used together withid orreblock.

Type: boolean (details)
watchuser

Watch the user's or IP address's user and talk pages.

Type: boolean (details)
watchlistexpiry

Watchlist expiry timestamp. Omit this parameter entirely to leave the current expiry unchanged.

Type: expiry (details)
tags

Change tags to apply to the entry in the block log.

Values (separate with| oralternative): AWB, convenient-discussions
partial

Block user from specific pages or namespaces rather than the entire site.

Type: boolean (details)
pagerestrictions

List of titles to block the user from editing. Only applies whenpartial is set to true.

Type: page title
Separate values with| oralternative.
Maximum number of values is 50.
Only accepts pages that exist.
namespacerestrictions

List of namespace IDs to block the user from editing. Only applies whenpartial is set to true.

Values (separate with| oralternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 710, 711, 828, 829, 1198, 1199, 1728, 1729, 2600, 5500, 5501
To specify all values, use*.
actionrestrictions

List of actions to block the user from performing. Only applies whenpartial is set to true.

Values (separate with| oralternative): create, move, thanks, upload
token

A "csrf" token retrieved fromaction=query&meta=tokens

This parameter is required.
Examples:
Block IP address192.0.2.5 for three days with a reason.
api.php?action=block&user=192.0.2.5&expiry=3%20days&reason=First%20strike&token=123ABC[open in sandbox]
Block userVandal indefinitely with a reason, and prevent new account creation and email sending.
api.php?action=block&user=Vandal&expiry=never&reason=Vandalism&nocreate=&autoblock=&noemail=&token=123ABC[open in sandbox]

Example

Making any POST request is a multi-step process:

  1. Log in, via one of the methods described onAPI:Login.
  2. GET atoken. This token is equal to the edit token and changes at every login.
  3. Send a POST request, with the token, to block a user.

POST request

Example of blocking a user for 1 day, disabling account creation and email
api.php?action=block&user=Example&expiry=1%20day&reason=Time%20out&nocreate=&noemail=&token=0123456789012345678901234567890123456789%2b%5c [try in ApiSandbox]

Response

{"block":{"user":"Example","userID":2,"expiry":"2015-02-25T07:27:50Z","id":"8","reason":"Time out","nocreate":"","noemail":""}}

Sample code of blocking users

Python

#!/usr/bin/python3"""    block_user.py    MediaWiki API Demos    Demo of `Block` module: sending POST request to block user    MIT license"""importrequestsS=requests.Session()URL="https://test.wikipedia.org/w/api.php"# Step 1: GET request to fetch login tokenPARAMS_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 & lgpasswordPARAMS_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 tokenPARAMS_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 userPARAMS_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 1loginRequest($login_Token);// Step 2$csrf_Token=getCSRFToken();// Step 3block($csrf_Token);// Step 4// Step 1: GET request to fetch login tokenfunctiongetLoginToken(){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 & lgpasswordfunctionloginRequest($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 tokenfunctiongetCSRFToken(){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 userfunctionblock($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*/varrequest=require('request').defaults({jar:true}),url="http://dev.wiki.local.wmftest.net:8080/w/api.php";// Step 1: GET request to fetch login tokenfunctiongetLoginToken(){varparams_0={action:"query",meta:"tokens",type:"login",format:"json"};request.get({url:url,qs:params_0},function(error,res,body){if(error){return;}vardata=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 & lgpasswordfunctionloginRequest(login_token){varparams_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 tokenfunctiongetCsrfToken(){varparams_2={action:"query",meta:"tokens",format:"json"};request.get({url:url,qs:params_2},function(error,res,body){if(error){return;}vardata=JSON.parse(body);block(data.query.tokens.csrftoken);});}// Step 4: POST request to block userfunctionblock(csrf_token){varparams_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 1getLoginToken();

MediaWiki JS

/*block_user.jsMediaWiki API DemosDemo of `Block` module: sending POST request to block userMIT License*/varparams={action:'block',user:'ABCD',expiry:'2020-02-25T07:27:50Z',reason:'API Test',format:'json'},api=newmw.Api();api.postWithToken('csrf',params).done(function(data){console.log(data);});

Unblocking users

API documentation

The following documentation is the output ofSpecial:ApiHelp/unblock, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).

action=unblock

(main |unblock)
  • This module requires read rights.
  • This module requires write rights.
  • This module only accepts POST requests.
  • Source:MediaWiki
  • License:GPL-2.0-or-later

Unblock a user.

Specific parameters:
Other general parameters are available.
id

ID of the block to unblock (obtained throughlist=blocks). Cannot be used together withuser.

Type: integer
user

User to unblock. Cannot be used together withid.

Type: user, by any of username, IP, Temporary user, IP range and user ID (e.g. "#12345")
userid
Deprecated.

Specifyuser=#ID instead.

Type: integer
reason

Reason for unblock.

Default:(empty)
tags

Change tags to apply to the entry in the block log.

Values (separate with| oralternative): AWB, convenient-discussions
watchuser

Watch the user's or IP address's user and talk pages.

Type: boolean (details)
watchlistexpiry

Watchlist expiry timestamp. Omit this parameter entirely to leave the current expiry unchanged.

Type: expiry (details)
token

A "csrf" token retrieved fromaction=query&meta=tokens

This parameter is required.

Example

POST request

Unblocking Example and apologizing
api.php?action=unblock&user=Example&token=0123456789012345678901234567890123456789%2b%5c&reason=Sorry%20Example [try in ApiSandbox]

Response

{"unblock":{"id":16,"user":"Example","userid":2,"reason":"Sorry Example","watchuser":false}}

Possible errors

Code (Blocking)Info
alreadyblockedThe user you tried to block was already blocked
cantblockYou don't have permission to block users.
cantblock-emailYou don't have permission to block users from sending email through the wiki.
canthideYou don't have permission to hide usernames from the block log.
This feature has to be enabled explicitly in LocalSettings.php.
invalidexpiryInvalid expiry time
invalidipInvalid IP address specified
invalidrangeInvalid IP range
notokenThetoken parameter must be set.
nouserTheuser parameter must be set.
pastexpiryExpiry time "$1" is in the past.
permissiondeniedYou don't have permission to block users.
On most wikis, blocking users is restricted to sysops, but other wikis may have stricter rules.
rangedisabledBlocking IP ranges has been disabled
Code (Unblocking)Info
notargetEither the ID or the user parameter must be set
notokenThetoken parameter must be set.
idanduserThe ID and user parameters can't be used together
blockedasrangeIP address "address" was blocked as part of range "range". You can't unblock the IP individually, but you can unblock the range as a whole.
cantunblockThe block you specified was not found. It may have been unblocked already
permissiondeniedYou don't have permission to unblock users.
On most wikis, unblocking users is restricted to sysops, but other wikis may have different rules.

Parameter history

  • 1.29: Introducedtags
  • 1.21: Removedgettoken
  • 1.20: Deprecatedgettoken
  • 1.18: Introducedwatchuser
  • 1.14: Introducedallowusertalk,reblock

See also

Retrieved from "https://www.mediawiki.org/w/index.php?title=API:Block&oldid=7933114"
Categories:

[8]ページ先頭

©2009-2026 Movatter.jp