2017-01-14 1 views
0

Mediawiki v.1.28을 사용하여 계정을 만들 수 있지만 새로 생성 된 계정에 해당 사용자의 이메일 주소를 저장해야합니다. 문서 (here)는 username, password, emailrealname으로 계정을 만들 수 있음을 나타내지 만 시도 할 때 usernamepassword 만 저장됩니다.mediawiki api를 사용하여 이메일 주소로 위키 미디어 계정을 만드는 방법

API 샌드 박스 docs (찾은 here)는 여러 단계 접근 방식을 제안하는 것으로 보이지만이를 파악하지 못했습니다.

저장된 이메일 주소로 계정을 만드는 방법을 보여주는 단계 (http 요청 예)를 제공함으로써 많은 도움을 주신 분께 감사드립니다.

+0

3 단계가 있습니다 : 1)'action = query & meta = tokens'를 통해 계정 생성 토큰을 얻고 2)'action = query & meta = authmanagerinfo'를 통해 API를 쿼리하여 로그인에 필요한 종류의 예를 들어, 사이트는 암호가 아닌 인증 방법을 사용합니다.이 경우 비밀번호는'/'retype'이 없습니다.) 양식을 작성하여 사용자에게 보여줍니다. 3) action을 통해 양식 값을 제출하십시오 = createaccount'. (계정 생성 프로세스 자체가 여러 단계를 거치는 경우 2 단계와 3 단계를 반복 할 수 있지만 가능성은 희박합니다.) ... – Tgr

+0

... 계정 생성에 필요한 필드를 정확히 알고 있다면 (예 : 당신이 제어하는 ​​위키에 대한 코드), 2 단계는 건너 뛸 수 있습니다. – Tgr

답변

0

몇 번의 시행 착오 끝에 나는 어떻게하는지 알아 냈습니다. createrequests 필드 파이프와 함께 접합 토큰 (? 위키 모듈을 나타냄)의 목록이다 (

/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 protected] 
&realname=Test+User 
&reason=Added+via+API 

: I는 다른 계정 생성 방법/양식이 같은 하나 개의 요청 (사용 POST)로 결합 될 수 있다는 것을 발견 '|') 기호로 구성되며 각 기호에는 요청시 제출할 수있는 해당 필드가 있습니다. 위의 예에서 해당 목록에 MediaWiki\Auth\UserDataAuthenticationRequest 토큰을 포함 시켰으며 emailrealname 필드를 제출할 수 있습니다. MediaWiki\Auth\PasswordAuthenticationRequest을 포함하여 username, passwordretype (비밀번호 재 입력) 필드를 보낼 수 있습니다. MediaWiki\Auth\CreationReasonAuthenticationRequest을 입력하면 reason (계정 생성 용) 입력란을 제출할 수 있습니다.

+0

일반적으로'createrequests'를 지정할 필요는 없습니다. 모든 필수 필드를 제출하더라도 특정 AuthenticationRequest를 제출하지 않으려는 경우를위한 것입니다. – Tgr

+0

'email' 필드를 데이터베이스에 저장하려면 적절한 값 ('MediaWiki \ Auth \ UserDataAuthenticationRequest')을'createrequests'에서 제공해야합니다. 계정은'createrequests'없이 만들 수 있지만'username'과'password' 만 저장됩니다. – dhobbs

+0

'createrequests'는 기본적으로 모든 요청을해야합니다. 그렇지 않은 경우 버그를 신고해야합니다. – Tgr

관련 문제