-
Notifications
You must be signed in to change notification settings - Fork 2
/
facebook.php
76 lines (63 loc) · 1.73 KB
/
facebook.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/*
* oops\AUTH2 FACEBOOK test page
*
* oops\AUTH2\FACEBOOK package는 독립적으로도 사용이 가능하다.
*
* dependency
*
* pear oops/myException
* pear oops/HTTPRelay
*/
session_start ();
$devel = false;
if ( $devel == true ) {
$iniget = function_exists ('___ini_get') ? '___ini_get' : 'ini_get';
$iniset = function_exists ('___ini_set') ? '___ini_set' : 'ini_set';
$cwd = getcwd ();
$ccwd = basename ($cwd);
if ( $ccwd == 'tests' ) {
$oldpath = $iniget ('include_path');
$newpath = preg_replace ("!/{$ccwd}!", '', $cwd);
$iniset ('include_path', $newpath . ':' . $oldpath);
}
}
require_once 'OAUTH2/FACEBOOK.php';
set_error_handler ('myException::myErrorHandler');
$callback = sprintf (
'%s:https://%s%s',
$_SERVER['HTTPS'] ? 'https' : 'http',
$_SERVER['HTTP_HOST'],
$_SERVER['REQUEST_URI']
);
$appId = (object) array (
'id' => 'APPLICATION_ID',
'secret' => 'APPLICATION_SECRET_KEY',
'callback' => $callback,
);
try {
$oauth2 = new oops\OAUTH2\FACEBOOK ($appId);
// logout 시에는 callback url에 logout parameter를 추가하고,
// logout 후에 redirect가 필요하면 redirect parameter까지 추가한다.
if ( isset ($_GET['logout']) ) {
unset ($_SESSION['oauth2']);
if ( $_GET['redirect'] )
Header ('Location: ' . $redirect);
printf ('%s Complete logout', strtoupper ($appId->vendor));
exit;
}
$user = $oauth2->Profile ();
$uid = sprintf ('%s:%s', $appId->vendor, $user->id);
$_SESSION['oauth2'] = (object) array (
'uid' => $uid,
'name' => $user->name,
'email' => $user->email,
'img' => $user->img,
'logout' => $callback . '?logout'
);
print_r ($_SESS['oauth2']);
} catch ( myException $e ) {
echo $e->Message () . "\n";
print_r ($e->TraceAsArray);
$e->finalize ();
}