如何使用mediawiki api创建包含电子邮件地址的维基媒体帐户

时间:2017-01-14 03:32:50

标签: mediawiki-api

使用Mediawiki v.1.28,我可以创建一个帐户,但我需要在新创建的帐户中存储用户的电子邮件地址。文档(找到name_scope)表示可以使用passwordemailrealnameusername创建帐户,但只能{我尝试时会存储{1}}和password

API沙箱文档(找到here)似乎暗示了一个多步骤的方法,但我还没有能够解决这个问题。

非常感谢任何可以提供帮助的人(在http请求示例中),这些步骤将显示如何使用存储的电子邮件地址创建帐户。

1 个答案:

答案 0 :(得分:0)

经过一些试验和错误,我想出了如何做到这一点。我发现不同的帐户创建方法/表单可以组合成一个请求(使用POST),如下所示:

/api.php?
action=createaccount
&format=json
&createrequests=MediaWiki%5CAuth%5CPasswordAuthenticationRequest%7CMediaWiki%5CAuth%5CUserDataAuthenticationRequest%7CMediaWiki%5CAuth%5CCreationReasonAuthenticationRequest
&createreturnurl=http%3A%2F%2Fexample.org%2F
&createtoken=fd4022e23f592fe3563693606f078a20587bc7d5%2B%5C
&username=testuser
&password=test
&retype=test
&email=testuser@example.com
&realname=Test+User
&reason=Added+via+API

createrequests字段是一个标记列表(代表Mediawiki模块?)与管道(' |')符号连接在一起,每个标记都有相应的字段可以提交在请求中。对于上面的示例,我在该列表中添加了MediaWiki\Auth\UserDataAuthenticationRequest令牌,允许提交emailrealname字段;包括MediaWiki\Auth\PasswordAuthenticationRequest允许您发送usernamepasswordretype(密码重新输入)字段; MediaWiki\Auth\CreationReasonAuthenticationRequest允许您提交reason(用于创建帐户)字段。