|
1 | 1 | <?php |
2 | | -error_reporting(E_ALL|E_STRICT); |
3 | | -ini_set('display_errors', 1); |
4 | | -date_default_timezone_set('Europe/Berlin'); |
| 2 | +// Enable Cookies for Internet Explorer in iframes |
| 3 | +header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); |
5 | 4 |
|
6 | 5 | // Load config |
7 | 6 | require_once dirname(__FILE__).'/config.php'; |
8 | | -require_once dirname(__FILE__).'/functions.php'; |
| 7 | +require_once 'lib/fb-php-sdk/src/facebook.php'; |
| 8 | + |
| 9 | +// General Settings |
| 10 | +error_reporting(E_ALL|E_STRICT); |
| 11 | +if ($debugMode) |
| 12 | + ini_set('display_errors', 1); |
| 13 | +else ini_set('display_errors', 0); |
| 14 | +date_default_timezone_set('Europe/Berlin'); |
9 | 15 |
|
10 | 16 | //set include path |
11 | 17 | define("ROOT_PATH",realpath(dirname(__FILE__))); |
|
17 | 23 | require_once "Zend/Loader/Autoloader.php"; |
18 | 24 | Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true); |
19 | 25 |
|
20 | | -//setup database |
| 26 | +// Set global variable |
| 27 | +$global = new ArrayObject(); |
| 28 | + |
| 29 | +// Init Session if already exists |
| 30 | +$session = new Zend_Session_Namespace('aa_session' . $aa_app_id); |
| 31 | +$session->setExpirationSeconds(60*60); // Session lives one hour |
| 32 | + |
| 33 | +// Init Database connection |
21 | 34 | $db_config=array( |
22 | 35 | 'host'=>$database_host, |
23 | 36 | 'username'=>$database_user, |
24 | 37 | 'password'=>$database_pass, |
25 | 38 | 'dbname'=>$database_name |
26 | 39 | ); |
27 | | - |
28 | 40 | $db = Zend_Db::factory('mysqli',$db_config); |
29 | 41 | $db->query('set names utf8'); |
30 | 42 | Zend_Db_Table::setDefaultAdapter($db); |
| 43 | +$global->db = $db; |
31 | 44 |
|
32 | | -//set global variable |
33 | | -$global=new ArrayObject(); |
34 | | -$global->db=$db; |
35 | | - |
36 | | -require_once 'app-arena/Helper.php'; |
37 | | -$helper = new Helper(); |
| 45 | +// Initialize App-Arena Connection and get all data if not available in session |
| 46 | +require_once 'AA/client/soap_client.php'; |
| 47 | +// Request data from app-arena system |
| 48 | +//if ($debugMode || !isset($session->instance) || !isset($session->design) || !isset($session->content) || !isset($session->config)) { |
| 49 | + $soap = new Client($aa_api_key); |
| 50 | + $global->soap = $soap; |
| 51 | + $aa_app = $soap->getData($aa_app_id, $aa_api_key); |
| 52 | + // Save App-Arena Data to Session |
| 53 | + try { |
| 54 | + $session->instance = $aa_app['instance']; |
| 55 | + $session->instance['id'] = $aa_app['instance']['instance_id']; |
| 56 | + $session->config = $aa_app['config']; |
| 57 | + $session->content = $aa_app['content']; |
| 58 | + $session->design = $aa_app['design']; |
| 59 | + } catch (Exception $e) { |
| 60 | + throw new Exception("SOAP connection to App-Arena service could not be established."); |
| 61 | + } |
| 62 | +//} |
38 | 63 |
|
39 | | -// Initialize App-Arena Connection |
40 | | -require_once 'app-arena/client/soap_client.php'; |
41 | | -$apparena = new Client($aa_api_key); |
42 | | -$instance_id = 0; |
43 | | -$page_id=get_page_id(); |
| 64 | +// Get Facebook User data, signed_request from session or from $_REQUEST |
| 65 | +// Update Session, if the user data has changed |
44 | 66 |
|
45 | | -$apparena->setInstanceId($aa_app_id, $instance_id,$page_id); |
46 | | -$result = $apparena->getData(); |
47 | 67 |
|
48 | | -//result[0] is the error ,0 successful 1 for error |
49 | | -if($result[0] == 1) |
50 | | -{ |
51 | | - echo $result[1]; |
52 | | - exit(); |
| 68 | +$signed_request = false; |
| 69 | +$user = false; |
| 70 | +if (isset($session->fb_api['signed_request'])) |
| 71 | + // If signed request contains actualized data, update user data |
| 72 | + if (isset($_REQUEST['signed_request']) && $_REQUEST['signed_request'] <> $session->fb_api['signed_request']) |
| 73 | + $signed_request = $_REQUEST['signed_request']; |
| 74 | + else |
| 75 | + $signed_request = $session->fb_api['signed_request']; |
| 76 | +else if (isset($_REQUEST['signed_request'])) |
| 77 | + $signed_request = $_REQUEST['signed_request']; |
| 78 | +if ($signed_request){ |
| 79 | + try { |
| 80 | + $user = new AA_Fb_User($signed_request, $session->instance['fb_app_secret'], $session->instance['fb_app_id']); |
| 81 | + } catch (Exception $e) { |
| 82 | + throw Exception("Could not get User Data from Facebook API."); |
| 83 | + } |
| 84 | + // Gathering user data for the session |
| 85 | + $global->user = $user; |
| 86 | + $session->user = $user->request_data['user']; |
| 87 | + $session->fb_api['signed_request'] = $signed_request; |
| 88 | + if (isset($user->request_data['user_id'])){ |
| 89 | + $session->user['id'] = $user->request_data['user_id']; |
| 90 | + } else { |
| 91 | + if (isset($user->user_id)) { |
| 92 | + $session->user['id'] = $user->user_id; |
| 93 | + } |
| 94 | + } |
| 95 | + // Gathering available page data for the session |
| 96 | + if (isset($user->request_data['page'])){ |
| 97 | + $session->fb_page = $user->request_data['page']; |
| 98 | + $session->fb_page['url'] = "https://www.facebook.com/" . $session->instance['fb_page_url']; |
| 99 | + $session->fb_page['app_url'] = $session->fb_page['url'] . "?sk=app_" . $session->instance['fb_app_id']; |
| 100 | + } |
53 | 101 | } |
54 | | -else |
55 | | -{ |
56 | | - $global->app = $result[1]; |
57 | | -} |
58 | | - |
59 | | -$global->instid=$global->app['instance']['instance_id']; |
60 | 102 | ?> |
0 commit comments