在调用MediaWiki-API时,我只获得'+ \'作为csrf-token

时间:2015-02-16 20:10:12

标签: php mediawiki

我可以使用简单的令牌编辑' + \'但是使用这个简单的令牌,我只能编辑为未注册的IP,而不能作为注册用户。有人能帮助我吗?

我的PHP代码:

$parameters = array('action' => 'query', 'meta' => 'tokens', 'format' => 'json');
$options = array(
   'http' => array(
      'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
      'method'  => 'POST',
      'content' => http_build_query($parameters),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($wiki, false, $context);
echo "$result";

2 个答案:

答案 0 :(得分:2)

您需要登录才能获得真正的CSRF令牌。有关如何登录的详细信息,请参阅:

http://www.mediawiki.org/wiki/API:Login

请注意,保持登录状态将要求您跨请求存储Cookie。 file_get_contents();这将很困难;建议使用带有饼干罐的cURL。

答案 1 :(得分:0)

要获取login token,请使用type=login参数。示例:

curl 'https://www.mediawiki.org/w/api.php?action=query&meta=tokens&format=json&type=login'