<?
//Define Your Api Endpoint here
$endPoint = "https://pathtoyourwiki/api.php";
//Force HTTPS when your endpoint also uses HTTPS
if(substr(strtolower($endPoint),0,5) == "https"){ForceHTTPS();}
//Helper functions
function ForceHTTPS()
{
if($_SERVER["HTTPS"] != "on")
{
$pageURL = "Location: https://";
if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
header($pageURL);
}
}
function ShowErrors()
{
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
// API Implementation
function GetLoginToken($username, $password, $endPoint, $cookieName, $cookieFile)
{
$endPoint.="?action=query&meta=tokens&type=login&format=json";
$parameters = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endPoint);
curl_setopt($ch, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
//curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameters));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieName);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
$json = curl_exec($ch);
curl_close($ch);
$arr =json_decode($json, true);
return $arr['query']['tokens']['logintoken'];
}
//Define wiki bot & api endpoint
/*
In order to successfully use a bot, using the administrative account(of your media wiki installation), you need to navigate to: index.php?title=Special:BotPasswords
1.) Create a new bot password(make note of the bot username, and password)
2.) Define the username and password below with __BOT_USER_NAME__ and __BOT_PASSWORD__
Additionally, navigate to : index.php?title=Special:UserRights
1.) Search for your administrative account
2.) Under 'Groups you can change', make sure the bot checkbox is checked
*/
define("__BOT_USER_NAME__", "");
define("__BOT_PASSWORD__", '');
define("__API_END_POINT_",$endPoint);
define("__COOKIE_NAME__", 'cookie-name');
define("__COOKIE_FILE_PATH__", '/var/www/ip4.x/file/tmp');
//Initialize Page
ShowErrors();
//Assign the result of calling the GetLoginToken function
$loginToken = GetLoginToken(__BOT_USER_NAME__,__BOT_PASSWORD__, __API_END_POINT_, __COOKIE_NAME__, __COOKIE_FILE_PATH__);
//Echo the token
echo "Login Token:<br><br>$loginToken";
?>