This page is a translated version of the page API:Assert and the translation is 100% complete.
MediaWiki版本:
1.23

Action API的聲稱(assert)参数可以在任何API请求中被设置,以便在执行请求的操作前验证某些条件。

可用的选项有:

  • assert=anon: 检查您是否是作为一個IP用户 。 这样可以避免意外地使用已注册账户。 Since MediaWiki 1.35change 572374
  • assert=user: 检查您是否正在使用的是一個已注册账户(「已命名」账户或临时账户)。这样可以防止意外回退到IP用户。
  • assert=bot: 检查您登录的账户是否拥有「bot 」用户权限。 这可以避免你的脚本与你的机器人没有机器人标记的维基进行交互。
  • assertuser=...: 检查您是否以预期的用户名登录。 Since MediaWiki 1.28

请注意,临时用户满足assert=user,不满足assert=anon

可能的错误

如果聲稱失败,将返回以下错误代码之一:

  • assertanonfailed
  • assertuserfailed
  • assertbotfailed
  • assertnameduserfailed

基本原理和使用案例

这些参数旨在作为第二道防线,防止出现两种问题:

机器人操作员失误

一个简单的操作失误很容易造成大量错误编辑,比如机器人运行在不對的维基上或不對的用户名下,特別是在运行多个机器人任务的情况下更是如此。 assert=botassertuser=...参数的目的是帮助避免这些错误。

登录時間过期

登录后,您收到的 cookie 的有效期只有默认30天,之后您的机器人将被注销,并可能继续工作,其操作将归属于IP地址或临时用户名(如果允许注销用户执行操作)。 assert=user参数就是为了防止出现这种情况。

切换用户账户

使用API进行编辑的交互式工具(在浏览器中)通常希望确保用户了解他们的作品将如何归属。 当用户在另一个浏览器标签页登录或退出(或登录会话过期)时,这不会立即反映在工具的界面上,但新的登录会话将用于保存操作。 assertuser=...assert=anon参数的作用是检测这种情况,并在继续运行前显示适当的信息。


单机检查

如果想要检查HTTP客户端是否已登录到Action API,而不想执行任何其他操作,可以发送一个带有参数action=query&assert=user的请求。 如果确实已登录,则返回空响应(以JSON格式的{});如果未登录,则返回assertuserfailed错误。

通常情况下,您不需要执行类似這個的個別请求。 而是,在每个请求中设置assert=user参数即可。