API:รายการเฝ้าดู
This page is part of the MediaWiki Action API documentation. |
เวอร์ชันมีเดียวิกิ: | ≥ 1.9 |
GET request to list pages on the current user's watchlist that were changed within the given time period, ordered by time of the last change of the watched page.
This module can be used as a generator .
API documentation
ตัวอย่าง
GET request
Get the currently logged-in user's watchlist.
Response
{
"batchcomplete": "",
"query": {
"watchlist": [
{
"ns": 1,
"old_revid": 898447862,
"pageid": 5858,
"revid": 898447924,
"title": "Talk:Software",
"type": "edit"
},
{
"ns": 0,
"old_revid": 896386764,
"pageid": 18934886,
"revid": 897854521,
"title": "Proprietary software",
"type": "edit"
},
{
"minor": "",
"ns": 0,
"old_revid": 894771707,
"pageid": 1721496,
"revid": 897348916,
"title": "Free and open-source software",
"type": "edit"
}
]
}
}
รหัสตัวอย่าง
Python
#!/usr/bin/python3
"""
get_watchlist.py
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
# Step 1: Retrieve a login token
PARAMS_1 = {
"action": "query",
"meta": "tokens",
"type": "login",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_1)
DATA = R.json()
LOGIN_TOKEN = DATA['query']['tokens']['logintoken']
# Step 2: Send a post request to log in. For this login
# method, Obtain bot credentials by visiting
# https://en.wikipedia.org/wiki/Special:BotPasswords/
# See https://www.mediawiki.org/wiki/API:Login for more
# information on log in methods.
PARAMS_2 = {
"action": "login",
"lgname": "username",
"lgpassword": "password",
"format": "json",
"lgtoken": LOGIN_TOKEN
}
R = S.post(URL, data=PARAMS_2)
# Step 3: While logged in, get the watchlist
PARAMS_3 = {
"action": "query",
"list": "watchlist",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.json()
print(DATA)
PHP
<?php
/*
get_watchlist.php
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT license
*/
$endPoint = "https://test.wikipedia.org/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
watchlist(); // Step 3
// 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: POST request to get the watchlist
function watchlist() {
global $endPoint;
$params4 = [
"action" => "query",
"list" => "watchlist",
"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 );
$result = json_decode( $output, true );
foreach( $result["query"]["watchlist"] as $k => $v ) {
echo( $v["title"] . "\n" );
}
}
JavaScript
/*
get_watchlist.js
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT license
*/
var request = require('request').defaults({jar: true}),
url = "https://test.wikipedia.org/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;
}
get_watchlist();
});
}
// Step 3: POST request to get the watchlist
function get_watchlist() {
var params_3 = {
action: "query",
list: "watchlist",
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
/*
get_watchlist.js
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT License
*/
var params = {
action: 'query',
list: 'watchlist',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
ข้อบกพร่อง (error) ที่อาจเกิด
รหัส (Code) | ข้อมูล (Info) |
---|---|
wlnotloggedin | You must be logged-in to have a watchlist |
wlpatrol | patrol property is not available |
wlshow | Incorrect parameter - mutually exclusive values may not be supplied. |
ประวัติพารามิเตอร์ (Parameter history)
- v1.24: เปิดตัว
unread
,!unread
- v1.23: เปิดตัว
wlcontinue
- v1.22: เปิดตัว
wltype
- v1.18: เปิดตัว
loginfo
- v1.17: เปิดตัว
userid
- v1.16: เปิดตัว
wluser
,wlexcludeuser
,parsedcomment
,notificationtimestamp
,wlowner
,wltoken
- v1.14: เปิดตัว
patrolled
,!patrolled
- v1.12: เปิดตัว
wlshow
- v1.11: เปิดตัว
ids
,title
,flags
,sizes
บันทึกเพิ่มเติม
- This module should not be confused with API:Watchlistraw , which lists all the pages on the logged in user's watchlist, regardless of whether they were recently changed or not.
ดูเพิ่ม
- API:Watch - แก้ไขรายการเฝ้าดู
- API:Watchlistraw - Get all the pages on the logged in user's watchlist, regardless of whether they were recently changed or not.
- API:Watchlist_feed - Get the RSS feed of a user's watchlist.