のためのMediaWiki APIでカールを使用する方法、私はAPI呼び出しのためにカールを使用したい、私はは、私は、ユーザーを登録するmediawikiのAPIを使用したいレジスタ
function RegisterCurl()
{
// is cURL installed yet?
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
//$url = 'http://localhost/WC/gccfwiki/api.php';
$myvar1 = "createaccount";
$myvar2 = "http://localhost/WC/gccfwiki/";
$myvar3 = $this->GetToken;
// $remove = '+\\';
// $myvar3 = str_replace($remove,"",$myvar3);
$myvar4 = "Bob";
$myvar5 = "ExamplePassword";
$myvar6 = "ExamplePassword";
$myvar7 = "[email protected]";
$myvar8 = "Robert20Example";
$myvars = 'action=' . $myvar1 . '&createreturnurl=' . $myvar2 . '&createtoken=' . $myvar3 . '&username=' . $myvar4. '&password=' . $myvar5 . '&retype=' . $myvar6 . '&email=' . $myvar7 . '&realname=' . $myvar8;
$url = 'http://localhost/WC/gccfwiki/api.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 25);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$output = curl_exec($ch);
var_dump($output);
die();
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
}
public function GetToken()
{
$url = 'http://localhost/WC/gccfwiki/api.php?action=query&format=json&meta=tokens&type=csrf|createaccount';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$output = curl_exec($ch);
$out=json_decode($output);print_r($out);die();
$token = $out->query->tokens->createaccounttoken;
return $token;
}
私は応答 を得た
{ てみました"error":{ "code": "badtoken"、 "info": "無効なCSRFトークン"、 "*": "APIの使用方法についてはhttp://localhost/WC/gccfwiki/api.phpを参照してください:のmediawiki-api-announceメーリングリストを購読してくださいhttps://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> APIの廃止と改訂のお知らせ。 } }
私はそれをどのように解決しますか?
あなたはCurlを直接使うという考えに執着していますか?代わりに 'addwiki/mediawiki-api'ライブラリを使うことができます。これはずっと簡単です! :-) –
私は別のプロジェクトからwikiにcurlを呼び出す必要があります。 – Midlaj
はい、そのプロジェクトではあなたができます。 '$ userCreator() - > create( 'User name'、 'pwd123');となり、すべての複雑さはhttps://github.com/addwiki/mediawiki-apiによって処理されます。 –