/** * Converts and auth token into an api session * * @param Array $params * */ public static function trust_widget(&$params) { try { $session_key = $params['social_session_key']; $callback = null; if (array_key_exists('auth_token', $params)) { $auth_token = $params['auth_token']; if (isset($auth_token)) { $trust = new RingsideSocialApiTrust($params); $callback = $trust->authorize(); } } else { if (array_key_exists('session', $params)) { $this->debug("A facebook session object has been received" . $params['session'] . ". It will be adopted."); $trust = new RingsideSocialApiTrust($params); $callback = $trust->authorize(); $this->debug("callback is now {$callback}"); //$session_key = $params['social_session_key']; } else { if (array_key_exists('social_session_key', $params)) { $session_key = $params['social_session_key']; if (isset($session_key)) { $network_session = new RingsideSocialSession($session_key); $callback = $network_session->getCallbackUrl(); } } else { if (array_key_exists('api_key', $params) || array_key_exists('canvas_url', $params)) { $trust = new RingsideSocialApiTrust($params); $result = $trust->getAppProperties(); if ($result) { $callback = isset($result['callback_url']) ? $result['callback_url'] : ''; } } else { if (array_key_exists('social_callback', $params)) { $callback = $params['social_callback']; } } } } } if (isset($callback)) { $decorated_callback = $callback; if (defined($session_key)) { if (strrpos($decorated_callback, '?') == 0) { $decorated_callback = $decorated_callback . "?session_key={$session_key}"; } else { $decorated_callback = $decorated_callback . "&session_key={$session_key}"; } } header("Cache-control: private"); header("Location: {$decorated_callback}"); exit; } return; } catch (Exception $exception) { error_log("Exception in Widget Trust: " . $exception->getMessage() . "\n" . $exception->getTraceAsString()); echo "<ERROR>" . $exception->getMessage() . "</ERROR>"; return; } }