View difference between Paste ID: 8JC8RAck and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | <?php |
2 | require 'facebook.php'; | |
3 | ||
4 | $base_url = "http://promos.uk.glam.com/splash_test/example.php"; | |
5 | ||
6 | // Create our Application instance. | |
7 | $facebook = new Facebook(array( | |
8 | 'appId' => 'xxxxxxxxxxxxxx', | |
9 | 'secret' => 'yyyyyyyyyyyyyy', | |
10 | 'cookie' => true, | |
11 | )); | |
12 | ||
13 | function debug($e, $name = '') { | |
14 | echo '<p><pre>'.$name.' : '; print_r($e); echo '</pre></p>'; | |
15 | } | |
16 | ||
17 | // We may or may not have this data based on a $_GET or $_COOKIE based session. | |
18 | // | |
19 | // If we get a session here, it means we found a correctly signed session using | |
20 | // the Application Secret only Facebook and the Application know. We dont know | |
21 | // if it is still valid until we make an API call using the session. A session | |
22 | // can become invalid if it has already expired (should not be getting the | |
23 | // session back in this case) or if the user logged out of Facebook. | |
24 | $session = $facebook->getSession(); | |
25 | ||
26 | $me = null; | |
27 | // Session based API call. | |
28 | if ($session) { | |
29 | try { | |
30 | $uid = $facebook->getUser(); | |
31 | $me = $facebook->api('/me'); | |
32 | debug($facebook->api('/me'), 'Me'); | |
33 | debug($facebook, 'FB'); | |
34 | ||
35 | //We seem to have a valid session, lets post the evetn | |
36 | } catch (FacebookApiException $e) { | |
37 | debug($e); | |
38 | } | |
39 | } | |
40 | ||
41 | // login or logout url will be needed depending on current user state. | |
42 | if ($me) { | |
43 | $logoutUrl = $facebook->getLogoutUrl(array('next' => $base_url)); | |
44 | } else { | |
45 | $loginUrl = $facebook->getLoginUrl( | |
46 | array( | |
47 | 'display' => 'popup', | |
48 | 'next' => $base_url . '?loginsucc=1', | |
49 | 'cancel_url'=> $base_url . '?cancel=1', | |
50 | 'req_perms' => 'create_event') | |
51 | ); | |
52 | } | |
53 | ||
54 | // if user click cancel in the popup window | |
55 | if (isset($_REQUEST['cancel'])) { | |
56 | die("<script> | |
57 | window.close(); | |
58 | </script>"); | |
59 | } elseif($me && isset($_REQUEST['loginsucc'])) { | |
60 | //only if valid session found and loginsucc is set | |
61 | ||
62 | //after facebook redirects it will send a session parameter as a json value | |
63 | //now decode them, make them array and sort based on keys | |
64 | $sortArray = get_object_vars(json_decode($_GET['session'])); | |
65 | ksort($sortArray); | |
66 | ||
67 | $strCookie = ""; | |
68 | $flag = false; | |
69 | foreach($sortArray as $key=>$item){ | |
70 | if ($flag) $strCookie .= '&'; | |
71 | $strCookie .= $key . '=' . $item; | |
72 | $flag = true; | |
73 | } | |
74 | ||
75 | //now set the cookie so that next time user don't need to click login again | |
76 | setCookie('fbs_xxxxxxxxxxxxx', $strCookie); | |
77 | ||
78 | die("<script> | |
79 | window.close(); | |
80 | window.opener.location.reload(); | |
81 | </script>"); | |
82 | } | |
83 | ?> | |
84 | <!DOCTYPE html> | |
85 | <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> | |
86 | <head> | |
87 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | |
88 | <title>Create an event on Facebook</title> | |
89 | </head> | |
90 | <body> | |
91 | <?php | |
92 | //if user is logged in and session is valid. | |
93 | if ($uid){ | |
94 | ||
95 | try { | |
96 | $file = "end300.jpg"; | |
97 | $event_info = '{"privacy_type":"SECRET", "name":"Rest Test PHP 2","host":"Me","start_time":1277560966,"end_time":1277571766,"location":"Cinema, London","description":"A testing event \u000d\u000a created by the REST API"}'; | |
98 | $call = array('method' => 'events.create', 'event_info' => $event_info);//, '@'.realpath($file).';type=image/jpg'); | |
99 | debug($facebook->api($call), 'call'); | |
100 | ||
101 | } catch (FacebookApiException $e) { | |
102 | debug($e); | |
103 | } | |
104 | ||
105 | echo '<a href="' . $facebook->getLogoutUrl() . '">Logout</a>'; | |
106 | } else { | |
107 | ?> | |
108 | <script type="text/javascript"> | |
109 | var newwindow; | |
110 | var intId; | |
111 | function login(){ | |
112 | var screenX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft, | |
113 | screenY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop, | |
114 | outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth, | |
115 | outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22), | |
116 | width = 500, | |
117 | height = 270, | |
118 | left = parseInt(screenX + ((outerWidth - width) / 2), 10), | |
119 | top = parseInt(screenY + ((outerHeight - height) / 2.5), 10), | |
120 | features = ( | |
121 | 'width=' + width + | |
122 | ',height=' + height + | |
123 | ',left=' + left + | |
124 | ',top=' + top | |
125 | ); | |
126 | ||
127 | newwindow=window.open('<?=$loginUrl?>','Login by facebook',features); | |
128 | ||
129 | if (window.focus) {newwindow.focus()} | |
130 | return false; | |
131 | } | |
132 | </script> | |
133 | Please login to Facebook and we will setup the event for you! | |
134 | <a href="#" onclick="login();return false;"> | |
135 | <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif" border="0"> | |
136 | </a> | |
137 | <?php | |
138 | } | |
139 | ?> | |
140 | </body> | |
141 | </html> |