annotate default/assets/vendors/theme-widgets/vendor/mute/facebook/example/handle-expired-access-tokens.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 * Handle expired access tokens
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 * @author Xavier Barbosa
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 * @since 13 February, 2013
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 * @link https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 use Mute\Facebook\App;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 use Mute\Facebook\Exception\GraphAPIException;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 * Default params
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 $app_id = 'YOUR_APP_ID';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 $app_secret = 'YOUR_APP_SECRET';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 $my_url = 'YOUR_POST_LOGIN_URL';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 * The process
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 $app = new App($app_id, $app_secret);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 // known valid access token stored in a database
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 $access_token = "YOUR_STORED_ACCESS_TOKEN";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 $code = $_REQUEST["code"];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 // If we get a code, it means that we have re-authed the user and can get a valid access_token.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 if ($code) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 $params = $app->getOAuth()->getAccessToken($code);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 $access_token = $params['access_token'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 try {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 // Attempt to query the graph:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 $decoded_response = $app->get('me', array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 'access_token' => $access_token,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 // success
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 echo "success" . $decoded_response['name'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 echo $access_token;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 } catch (GraphAPIException $e) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 if ($e->getType() == "GraphAPIException") {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 // Retrieving a valid access token.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 $dialog_url = $app->getOAuth()->getCodeURL($my_url);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 echo "<script> top.location.href=" . json_encode($dialog_url) . "</script>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 echo "other error has happened";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60