<?php date_default_timezone_set('UTC'); header("Content-Type: text/html; charset=UTF-8"); mb_internal_encoding("UTF-8"); $settings['mwOAuthAuthorizeUrl'] = 'https://www.mediawiki.org/wiki/Special:OAuth/authorize'; $settings['mwOAuthUrl'] = 'https://www.mediawiki.org/w/index.php?title=Special:OAuth'; $settings['mwOAuthIW'] = 'mw'; $settings['apiUrl'] = 'https://id.wikipedia.org/w/api.php'; $settings['errorCode'] = 200; $settings['gUserAgent'] = ""; $settings['gConsumerKey'] = ""; $settings['gConsumerSecret'] = ""; include "secret.php"; $settings['gTokenKey'] = ''; $settings['gTokenSecret'] = ''; $settings['loggedinUsername'] = ''; $settings['userCanDelete'] = ''; session_start(); if (isset($_SESSION['tokenKey'])) { $settings['gTokenKey'] = $_SESSION['tokenKey']; $settings['gTokenSecret'] = $_SESSION['tokenSecret']; if (isset($_SESSION['loggedinUsername'])) { $settings['loggedinUsername'] = $_SESSION['loggedinUsername']; $settings['userCanDelete'] = $_SESSION['userCanDelete']; } } session_write_close(); if (isset($_GET['oauth_verifier']) && $_GET['oauth_verifier']) { fetch_access_token(); }
<?php include 'vars.php'; include SECRET_FILE; // include ROOT.'/shared/errors.php'; $shortTermAccessToken = fetch_access_token(SHORT_TERM_TOKEN_FILE); echo "<br/> Extended Access Token [" . extend_access_token($shortTermAccessToken) . ']'; function fetch_access_token($path) { $access_token_file = fopen($path, "a+") or die("Unable to open file! [" . $path . "]"); $size = filesize($path); if ($size > 0) { $access_token = fread($access_token_file, $size); } else { $msg = 'invalid access token'; throw new Exception($msg); } fclose($access_token_file); return $access_token; } function extend_access_token($short_term_access_token) { // https://developers.facebook.com/docs/facebook-login/access-tokens#extending $encoded_app_id = urlencode(FB_APP_ID); $encoded_app_secret = urlencode(FB_APP_SECRET); $base_url = HOST . "/oauth/access_token?"; $params = array('grant_type' => 'fb_exchange_token', 'client_id' => $encoded_app_id, 'client_secret' => $encoded_app_secret, 'fb_exchange_token' => $short_term_access_token); $formed_params = http_build_query($params); $formed_url = $base_url . $formed_params; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $formed_url);