Greetings,

I'm having a weird problem using my under-construction Ruby API library 
to talk to Wikimedia wikis.  Login to eg. en.wikipedia.org seems to work 
fine:

REQ: {"format"=>"xml", "lgpassword"=>"XXX", "action"=>"login", 
"lgdomain"=>"local", "lgname"=>"Jpatokal"}
RES: <api><login result='NeedToken' cookieprefix='enwiki' 
token='b07fdd1582a3faeed6244b58577a2b19' 
sessionid='e310ae7389c8364e7ff4ac2e91258e54'/></api>
REQ: {"format"=>"xml", "lgpassword"=>"XXX", "action"=>"login", 
"lgdomain"=>"local", "lgtoken"=>"b07fdd1582a3faeed6244b58577a2b19", 
"lgname"=>"Jpatokal"}
RES: <api><login result='Success' lguserid='8155' cookieprefix='enwiki' 
lgusername='Jpatokal' sessionid='e310ae7389c8364e7ff4ac2e91258e54' 
lgtoken='3006f107e16173abcc8d9a2d46fbfea4'/></api>

I can request an edit token for a page and get back a seemingly suitable 
one:

REQ: {"intoken"=>"edit", "format"=>"xml", "action"=>"query", 
"titles"=>"User:Jpatokal/Sandbox", "prop"=>"info"}
RES: <api><query><pages><page starttimestamp='2010-08-11T10:26:00Z' 
pageid='26692065' touched='2010-04-23T04:55:02Z' lastrevid='357765946' 
title='User:Jpatokal/Sandbox' 
edittoken='6069665f65933586ddfa540d38d30d6a+\' ns='2' counter='0' 
length='67'/></pages></query></api>

However, when I send it back, it's rejected with "badtoken".

REQ: {"format"=>"xml", "title"=>"User:Jpatokal/Sandbox", 
"token"=>"6069665f65933586ddfa540d38d30d6a+\\", "text"=>"haxx0r", 
"action"=>"edit", "summary"=>""}
RES: <api><error code='badtoken' info='Invalid token'/></api>

What's wrong?  The same sequence works fine on my local test wiki.  
Here's a packet trace of the actual edit request, which looks fine to 
me, including the URL-encoding of the token:

POST /w/api.php HTTP/1.1
Accept: */*; q=0.5, application/xml
User-Agent: MediaWiki::Gateway/0.0.1
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Cookie: 
centralauth_Session=f5b0c979d3097489deca4b759f9d49af;centralauth_Token=8f57e36225df5a8f71cfd623718dff59;centralauth_User=Jpatokal;domain=.wikipedia.org;enwikiUserID=8155;enwikiUserName=Jpatokal
Content-Length: 120
Host: en.wikipedia.org

format=xml&title=User%3AJpatokal%2FSandbox&token=6069665f65933586ddfa540d38d30d6a%2B%5C&text=haxx0r&action=edit&summary=

Cheers,
-jani


_______________________________________________
Mediawiki-api mailing list
Mediawiki-api@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

Reply via email to