Init.
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
class Utils {
|
||||
public static function redirect($uri = '') {
|
||||
header("HTTP/1.1 301 Moved Permanently");
|
||||
header("Location: ".$uri, TRUE, 302);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
class OAuthFB {
|
||||
|
||||
const APP_ID = 902955353157156; //App ID/API Key
|
||||
const APP_SECRET = '7c7540c3e593a802969be88d0a6553d4'; //App Secret
|
||||
const URL_CALLBACK = 'https://new-combats.com/social.php?fbconnect'; //URL Âàøåãî ñàéòà, íà êîòîðûé ïðîèçîéäåò ïåðåíàïðàâëåíèå
|
||||
const URL_OATH = 'httpss://www.facebook.com/dialog/oauth';
|
||||
const URL_ACCESS_TOKEN = 'httpss://graph.facebook.com/oauth/access_token';
|
||||
const URL_GET_ME = 'httpss://graph.facebook.com/me';
|
||||
|
||||
private static $token;
|
||||
public static $userId;
|
||||
public static $userData;
|
||||
|
||||
/**
|
||||
* @url httpss://developers.facebook.com/docs/reference/dialogs/oauth
|
||||
*/
|
||||
public static function goToAuth()
|
||||
{
|
||||
$_SESSION['state'] = md5(uniqid(rand(), TRUE));
|
||||
Utils::redirect(self::URL_OATH .
|
||||
'?client_id=' . sprintf('%.0f', self::APP_ID) .
|
||||
'&redirect_uri=' . urlencode(self::URL_CALLBACK) .
|
||||
"&state=" . $_SESSION['state']);
|
||||
}
|
||||
|
||||
public static function getToken($code) {
|
||||
|
||||
$url = self::URL_ACCESS_TOKEN .
|
||||
'?client_id=' . sprintf('%.0f', self::APP_ID) .
|
||||
'&redirect_uri=' . urlencode(self::URL_CALLBACK) .
|
||||
'&client_secret=' . self::APP_SECRET .
|
||||
'&code=' . $code;
|
||||
|
||||
if (!($response = @file_get_contents($url))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
parse_str($response, $result);
|
||||
|
||||
if (empty($result['access_token'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
self::$token = $result['access_token'];
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Åñëè äàííûõ íåäîñòàòî÷íî, òî ïîñìîòðèòå ÷òî ìîæíî åù¸ çàïðîñèòü ïî ýòîé ññû21321ëêå
|
||||
* @url httpss://developers.facebook.com/docs/graph-api/reference/user
|
||||
*/
|
||||
public static function getUser() {
|
||||
|
||||
if (!self::$token) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$url = self::URL_GET_ME . '?fields=id,email&access_token=' . self::$token;
|
||||
|
||||
if (!($user = @file_get_contents($url))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = json_decode($user);
|
||||
if (empty($user)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
self::$userId = $user->id;
|
||||
return self::$userData = $user;
|
||||
}
|
||||
|
||||
public static function checkState($state) {
|
||||
return (isset($_SESSION['state']) && ($_SESSION['state'] === $state));
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user