使用Mediawiki v.1.28,我可以创建一个帐户,但我需要在新创建的帐户中存储用户的电子邮件地址。文档(找到name_scope)表示可以使用password
,email
,realname
和username
创建帐户,但只能{我尝试时会存储{1}}和password
。
API沙箱文档(找到here)似乎暗示了一个多步骤的方法,但我还没有能够解决这个问题。
非常感谢任何可以提供帮助的人(在http请求示例中),这些步骤将显示如何使用存储的电子邮件地址创建帐户。
答案 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
令牌,允许提交email
和realname
字段;包括MediaWiki\Auth\PasswordAuthenticationRequest
允许您发送username
,password
和retype
(密码重新输入)字段; MediaWiki\Auth\CreationReasonAuthenticationRequest
允许您提交reason
(用于创建帐户)字段。