API:Watch/tr
![]() | Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
MediaWiki sürümü: | ≥ 1.14 |
Bir izleme listesine sayfa eklemek veya listeden sayfa kaldırmak için POST isteği.
API belgesi
![]() | Aşağıdaki belgelendirme, bu sitede (MediaWiki.org) çalışan MediaWiki'nin sürüm öncesi sürümü tarafından otomatik olarak oluşturulan Special: |
action=watch
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0-or-later
Add or remove pages from the current user's watchlist.
- title
- Deprecated.
The page to (un)watch. Use titles instead.
- expiry
Expiry timestamp to be applied to all given pages. Omit this parameter entirely to leave any current expiries unchanged.
- Type: expiry (details)
- unwatch
If set the page will be unwatched rather than watched.
- Type: boolean (details)
- continue
When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.
- titles
A list of titles to work on.
- Separate values with | or alternative.
- Maximum number of values is 50 (500 for clients that are allowed higher limits).
- pageids
A list of page IDs to work on.
- Type: list of integers
- Separate values with | or alternative.
- Maximum number of values is 50 (500 for clients that are allowed higher limits).
- revids
A list of revision IDs to work on. Note that almost all query modules will convert revision IDs to the corresponding page ID and work on the latest revision instead. Only prop=revisions uses exact revisions for its response.
- Type: list of integers
- Separate values with | or alternative.
- Maximum number of values is 50 (500 for clients that are allowed higher limits).
- generator
Get the list of pages to work on by executing the specified query module.
Note: Generator parameter names must be prefixed with a "g", see examples.
- allcategories
- Enumerate all categories.
- alldeletedrevisions
- List all deleted revisions by a user or in a namespace.
- allfileusages
- List all file usages, including non-existing.
- allimages
- Enumerate all images sequentially.
- alllinks
- Enumerate all links that point to a given namespace.
- allpages
- Enumerate all pages sequentially in a given namespace.
- allredirects
- List all redirects to a namespace.
- allrevisions
- List all revisions.
- alltransclusions
- List all transclusions (pages embedded using {{x}}), including non-existing.
- backlinks
- Find all pages that link to the given page.
- categories
- List all categories the pages belong to.
- categorymembers
- List all pages in a given category.
- deletedrevisions
- Get deleted revision information.
- duplicatefiles
- List all files that are duplicates of the given files based on hash values.
- embeddedin
- Find all pages that embed (transclude) the given title.
- exturlusage
- Enumerate pages that contain a given URL.
- fileusage
- Find all pages that use the given files.
- images
- Returns all files contained on the given pages.
- imageusage
- Find all pages that use the given image title.
- iwbacklinks
- Find all pages that link to the given interwiki link.
- langbacklinks
- Find all pages that link to the given language link.
- links
- Returns all links from the given pages.
- linkshere
- Find all pages that link to the given pages.
- messagecollection
- Query MessageCollection about translations.
- mostviewed
- Lists the most viewed pages (based on last day's pageview count).
- pageswithprop
- List all pages using a given page property.
- prefixsearch
- Perform a prefix search for page titles.
- protectedtitles
- List all titles protected from creation.
- querypage
- Get a list provided by a QueryPage-based special page.
- random
- Get a set of random pages.
- recentchanges
- Enumerate recent changes.
- redirects
- Returns all redirects to the given pages.
- revisions
- Get revision information.
- search
- Perform a full text search.
- templates
- Returns all pages transcluded on the given pages.
- trackingcategories
- Enumerate all existing tracking categories defined in Special:TrackingCategories. A tracking category exists if it contains pages or if its category page exists.
- transcludedin
- Find all pages that transclude the given pages.
- watchlist
- Get recent changes to pages in the current user's watchlist.
- watchlistraw
- Get all pages on the current user's watchlist.
- wblistentityusage
- Returns all pages that use the given entity IDs.
- readinglistentries
- Internal. List the pages of a certain list.
- One of the following values: allcategories, alldeletedrevisions, allfileusages, allimages, alllinks, allpages, allredirects, allrevisions, alltransclusions, backlinks, categories, categorymembers, deletedrevisions, duplicatefiles, embeddedin, exturlusage, fileusage, images, imageusage, iwbacklinks, langbacklinks, links, linkshere, messagecollection, mostviewed, pageswithprop, prefixsearch, protectedtitles, querypage, random, recentchanges, redirects, revisions, search, templates, trackingcategories, transcludedin, watchlist, watchlistraw, wblistentityusage, readinglistentries
- redirects
Automatically resolve redirects in titles, pageids, and revids, and in pages returned by generator.
- Type: boolean (details)
- converttitles
Convert titles to other variants if necessary. Only works if the wiki's content language supports variant conversion. Languages that support variant conversion include ban, crh, en, gan, iu, ku, mni, sh, shi, sr, tg, tly, uz, wuu, zgh and zh.
- Type: boolean (details)
- token
A "watch" token retrieved from action=query&meta=tokens
- This parameter is required.
- Watch the page MediaWiki.
- api.php?action=watch&titles=MediaWiki&token=123ABC [open in sandbox]
- Watch the pages MediaWiki, Foo, and Bar for one month.
- api.php?action=watch&titles=MediaWiki|Foo|Bar&expiry=1%20month&token=123ABC [open in sandbox]
- Unwatch the page MediaWiki.
- api.php?action=watch&titles=MediaWiki&unwatch=&token=123ABC [open in sandbox]
- Watch the first few pages in the main namespace.
- api.php?action=watch&generator=allpages&gapnamespace=0&token=123ABC [open in sandbox]
Örnek
Herhangi bir POST isteği yapmak çok adımlı bir işlemdir:
- API:Oturum aç üzerinde açıklanan yöntemlerden biriyle oturum açın.
- CSRF anahtar GET'i.
Yukarıdaki örnek sorgu MediaWiki 1.24+ çalışan vikiler içindir.
MediaWiki'nin önceki sürümlerini çalıştıran wikiler için, bu işlem için anahtarlar
action=tokens
iletype=watch
(MediaWiki 1.20+) veya aşağıdaki sorgu kullanılarak elde edilebilir: - Bir sayfada işlem yapmak için CSRF anahtarıyla bir POST isteği gönderin.
Aşağıdaki örnek kod, son adımı ayrıntılı olarak kapsamaktadır.
POST isteği
Yanıt
{
"batchcomplete": "",
"watch": [
{
"title": "Stone Forest",
"watched": ""
}
]
}
Örnek kod
Python
#!/usr/bin/python3
"""
watch.py
MediaWiki API Demos
Demo of `Watch` module: Add a page to your 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 credentials by first visiting
# https://www.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, retrieve a CSRF token
PARAMS_3 = {
"action": "query",
"meta": "tokens",
"type": "watch",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.json()
CSRF_TOKEN = DATA["query"]["tokens"]["watchtoken"]
# Step 4: Post request to add a page to your watchlist
PARAMS_4 = {
"action": "watch",
"titles": "Stone forest",
"format": "json",
"token": CSRF_TOKEN,
}
R = S.post(URL, data=PARAMS_4)
DATA = R.json()
print(DATA)
PHP
<?php
/*
watch.php
MediaWiki API Demos
Demo of `Watch` module: Add a page to your watchlist
MIT license
*/
$endPoint = "https://test.wikipedia.org/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
$watch_Token = getWatchToken(); // Step 3
editWatchlist( $watch_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 watch token
function getWatchToken() {
global $endPoint;
$params3 = [
"action" => "query",
"meta" => "tokens",
"type" => "watch",
"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"]["watchtoken"];
}
// Step 4: POST request to add a page to your watchlist
function editWatchlist( $watch_Token ) {
global $endPoint;
$params4 = [
"action" => "watch",
"titles" => "Sandbox",
"token" => $watch_Token,
"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
/*
watch.js
MediaWiki API Demos
Demo of `Watch` module: Add a page to your 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;
}
getCsrfToken();
});
}
// Step 3: GET request to fetch watch token
function getCsrfToken() {
var params_2 = {
action: "query",
meta: "tokens",
type: "watch",
format: "json"
};
request.get({ url: url, qs: params_2 }, function(error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
watch(data.query.tokens.watchtoken);
});
}
// Step 4: POST request to add a page to your watchlist
function watch(watch_token) {
var params_3 = {
action: "watch",
titles: "Sandbox",
token: watch_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
/*
watch.js
MediaWiki API Demos
Demo of `Watch` module: Add a page to your watchlist
MIT License
*/
var params = {
action: 'watch',
titles: 'Sandbox',
format: 'json'
},
api = new mw.Api();
api.postWithToken( 'watch', params ).done( function ( data ) {
console.log( data );
} );
Parametre geçmişi
- v1.25:
uselang
kullanımdan kaldırıldı - v1.23:
continue
,title
,pageids
,revids
,generator
,redirects
,converttitles
tanıtıldıtitle
kullanımdan kaldırıldı
- v1.21:
uselang
tanıtıldı
Ek notlar
- Örnek kodu bir bot üzerinden çalıştırırken, botun Special:BotPasswords sayfasını ziyaret ederek
İzleme listenizi düzenleyin
seçeneğinintrue
olarak ayarlandığından emin olun. - Bu modül, izleme listesi anahtarlarını değil CSRF anahtarlarını kullanır. CSRF anahtarları genellikle POST istekleri ve Action API boyunca wiki değiştirici eylemler için kullanılırken, izleme listesi belirteçleri özellikle başka bir kullanıcının izleme listesini görüntülemek için kullanılır.
- Bir hesabın özel izleme listesini giriş yapmadan okumanıza izin veren API:Watchlist aksine, bu modül doğrudan değiştirmek istediğiniz hesaba giriş yapmanızı gerektirir.
Ayrıca bakınız
- API:Watchlist - bir izleme listesi alır
- API:Watchlist feed - bir kullanıcının izleme listesinin RSS veya Atom beslemesini alır