> > >> $createAccountToken = $response['query']['tokens']['createaccounttoken']; >> >> $oauth->fetch("https://myserver/w/api.php?action=createaccou >> nt&format=json&name=FooBar&email=foo...@gmail.com& >> realname=FooBar&mailpassword=false&reason=provisioning& >> language=en&token=$createAccountToken", null, OAUTH_HTTP_METHOD_PUT); >> >> I receive >> >> {"error":{"code":"createnotoken","info":"The token parameter must be >> set","*":"See https://myserver/w/api.php for API usage"}} >> >> Second question: What am I doing wrong when invoking the createaccount >> action? >> > > Two things: > > 1. The parameter is named "createtoken", not "token". > 2. You're not urlencoding it. >
Thank you. I am now sending this: $createAccountToken = $response['query']['tokens']['createaccounttoken']; $createAccountTokenEncoded = urlencode($createAccountToken); $oauth->fetch(" https://myserver/w/api.php?action=createaccount&format=json&name=FooBar&email=foo...@gmail.com&realname=FooBar&mailpassword=false&reason=provisioning&language=en&createtoken=$createAccountTokenEncoded", null, OAUTH_HTTP_METHOD_POST); But I see this error: {"error":{"code":"createmustpostparams","info":"The following parameters were found in the query string, but must be in the POST body: createtoken","*":"See https://myserver/w/api.php for API usage"}} I then try $parameters = array('createtoken', $createAccountTokenEncoded); $oauth->fetch(" https://myserver/w/api.php?action=createaccount&format=json&name=FooBar&email=foo...@gmail.com&realname=FooBar&mailpassword=false&reason=provisioning&language=en", $parameters, OAUTH_HTTP_METHOD_POST); but I see this error: {"error":{"code":"createnotoken","info":"The token parameter must be set","*":"See https://myserver/w/api.php for API usage"}} Should the createtoken be passed as part of the query string or in the POST body? > >> I am following documentation at >> >> https://www.mediawiki.org/wiki/API:Account_creation >> >> but it is not clear to me which parts of that page may be deprecated and >> precisely how I should provision a new account. >> > > I should update that page for AuthManager. In the mean time, account > creation in 1.27 and later works much like action=clientlogin, as > documented at https://www.mediawiki.org/wiki/API:Login#The_ > clientlogin_action. See also https://www.mediawiki.org/w/ > api.php?modules=createaccount for the auto-generated documentation. > Thanks. I confess, however, that I am having difficulty understanding the auto-generated documentation. If you have time and could point me to the source code for the createaccount action I will examine it and see if I can discern what I should be passing in. Thanks, Scott K
_______________________________________________ Mediawiki-api mailing list Mediawiki-api@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-api