API:Watchlist feed
Appearance
Şununla karıştırılmamalıdır: API:Watchlist.
Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
MediaWiki sürümü: | ≥ 1.9 |
Manual:Watchlist beslemesi döndüren GET isteği.
API belgesi
Örnek
wlowner
parametresi aracılığıyla hiçbir kullanıcı belirtilmezse, bu API varsayılan olarak kendi izleme listesi özet akışınızı veya en azından şu anda oturum açmış olduğunuz hesabın izleme listesi beslemesine gösterir.
GET isteği
İstekte bulunan hesap için izleme listesi beslemesine alın.
Yanıt
<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Wikipedia - Watchlist [en]</title>
<link>https://en.wikipedia.org/wiki/Special:Watchlist</link>
<description>Watchlist</description>
<language>en</language>
<generator>MediaWiki 1.33.0-wmf.13</generator>
<lastBuildDate>Tue, 22 Jan 2019 16:20:52 GMT</lastBuildDate>
<item>
<title>Article on Watchlist</title>
...
</item>
</channel>
</rss>
Örnek kod
Python
#!/usr/bin/python3
"""
get_my_watchlist_feed.py
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
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 credentials by first 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": "user_name",
"lgpassword": "password",
"format": "json",
"lgtoken": LOGIN_TOKEN
}
R = S.post(URL, data=PARAMS_2)
# Step 3: Request the account's own watchlist feed
PARAMS_3 = {
"action": "feedwatchlist"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.text
print(DATA)
PHP
<?php
/*
get_my_watchlist_feed.php
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
MIT license
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
get_watchlist_feed(); // 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: Request the account's own watchlist feed
function get_watchlist_feed() {
global $endPoint;
$params3 = [
"action" => "feedwatchlist",
"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 );
echo( $output );
}
JavaScript
/*
get_my_watchlist_feed.js
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
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_1 = {
action: "query",
meta: "tokens",
type: "login",
format: "json"
};
request.get({ url: url, qs: params_1 }, function(error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
loginRequest(data.query.tokens.logintoken);
});
}
// Step2: Send a post request to login. 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_2 = {
action: "login",
lgname: "bot_username",
lgpassword: "bot_password",
lgtoken: login_token,
format: "json"
};
request.post({
url: url,
form: params_2,
}, function(error, res, body) {
if (error) {
return;
}
getWatchlistFeed();
});
}
// Step 3: Request the account's own watchlist feed
function getWatchlistFeed() {
var params_3 = {
action: "feedwatchlist"
};
request.get({ url: url, qs: params_3 }, function(error, res, body) {
if (error) {
return;
}
console.log(body);
});
}
// Start From Step 1
getLoginToken();
Parametre geçmişi
- v1.27:
wltype: categorize
tanıtıldı - v1.25:
wlshow: unread
,wlshow: !unread
tanıtıldı - v1.24:
linktodiffs
kullanımdan kaldırıldı - v1.22:
wltype
tanıtıldı - v1.19:
wlexcludeuser
tanıtıldı - v1.17:
linktodiffs
tanıtıldı - v1.16:
wltoken
,wlowner
tanıtıldı - v1.12:
allrev
tanıtıldı - v1.11:
hours
tanıtıldı
Ek notlar
- Bu API ayrıca başka bir kullanıcının izleme listesi beslemesine özel izleme listesi anahtarı aracılığıyla erişmenizi sağlar. "Anahtarları yönet" altında Special:Preferences sayfasına ziyaret ederek kendi izleme listesi simgenizi görüntüleyebilir veya sıfırlayabilirsiniz.
wlexcludeuser
parametresi yalnızca bir değeri kabul eder; tek bir sorguda birden fazla kullanıcıyı hariç tutmak mümkün değildir.- Bu API JSON döndürmez - sorgunuza
format=json
ekleseniz de, yanıt her zaman beslemeyi temsil eden bir xml nesnesi olacaktır. - Besleme yalnızca en son değiştirilen sayfaları görüntüler. API aracılığıyla 72 saatten daha uzun bir süre önce değiştirilmiş sayfaları görüntüleyemezsiniz.
- Sıradan hesaplara varsayılan olarak kendi izleme listelerini görüntüleme hakkı verilir, ancak botlar farklı çalışır. Botu elle kendiniz vermelisiniz. Bunu, Special:BotPasswords üzerindeki "Kendi izleme listeni görüntüle" işaretleyerek yapabilirsiniz.
Ayrıca bakınız
- API:Watch - kendi izleme listenize sayfa ekler veya listeden sayfa kaldırır.
- API:Watchlist -
action=query
bir modül; belirli bir zaman dilimi içinde bir kullanıcının izleme listesindeki sayfaların listesini alır. - API:Watchlistraw -
action=query
bir modül; kullanıcının izleme listesindeki tüm sayfaların bir listesini alır.