API:声明
本页是MediaWiki Action API帮助文档的一部份。 |
MediaWiki版本: | ≥ 1.23 |
Action API的聲稱(assert)参数可以在任何API请求中被设置,以便在执行请求的操作前验证某些条件。
可用的选项有:
assert=anon
: 检查您是否是作为一個IP用户 。 这样可以避免意外地使用已注册账户。 Since MediaWiki 1.35 • change 572374assert=user
: 检查您是否正在使用的是一個已注册账户(「已命名」账户或临时账户)。这样可以防止意外回退到IP用户。assert=bot
: 检查您登录的账户是否拥有「bot 」用户权限。 这可以避免你的脚本与你的机器人没有机器人标记的维基进行交互。assertuser=...
: 检查您是否以预期的用户名登录。 Since MediaWiki 1.28
请注意,临时用户满足assert=user
,不满足assert=anon
。
可能的错误
如果聲稱失败,将返回以下错误代码之一:
assertanonfailed
assertuserfailed
assertbotfailed
assertnameduserfailed
基本原理和使用案例
这些参数旨在作为第二道防线,防止出现两种问题:
机器人操作员失误
一个简单的操作失误很容易造成大量错误编辑,比如机器人运行在不對的维基上或不對的用户名下,特別是在运行多个机器人任务的情况下更是如此。
assert=bot
和assertuser=...
参数的目的是帮助避免这些错误。
登录時間过期
登录后,您收到的 cookie 的有效期只有默认30天,之后您的机器人将被注销,并可能继续工作,其操作将归属于IP地址或临时用户名(如果允许注销用户执行操作)。
assert=user
参数就是为了防止出现这种情况。
切换用户账户
使用API进行编辑的交互式工具(在浏览器中)通常希望确保用户了解他们的作品将如何归属。
当用户在另一个浏览器标签页登录或退出(或登录会话过期)时,这不会立即反映在工具的界面上,但新的登录会话将用于保存操作。
assertuser=...
和assert=anon
参数的作用是检测这种情况,并在继续运行前显示适当的信息。
单机检查
如果想要检查HTTP客户端是否已登录到Action API,而不想执行任何其他操作,可以发送一个带有参数action=query&assert=user
的请求。
如果确实已登录,则返回空响应(以JSON格式的{}
);如果未登录,则返回assertuserfailed
错误。
通常情况下,您不需要执行类似這個的個別请求。
而是,在每个请求中设置assert=user
参数即可。