session = $session; return $session; } catch (\Exception $e) { \Idno\Core\site()->session()->addMessage("Your Facebook session seems to have expired. You need to config()->getDisplayURL()."account/facebook/\">re-authenticate."); } return false; } /** * Get the URL to authenticate with Facebook * @param array $params * @return string */ function getLoginUrl($params = []) { $redirect_url = \Idno\Core\site()->config()->getDisplayURL() . 'facebook/callback'; $helper = new Facebook\FacebookRedirectLoginHelper($redirect_url); return $helper->getLoginUrl(['public_profile','email','manage_pages']); } /** * Get the Facebook session on redirect * @return bool|Facebook\FacebookSession */ function getSessionOnLogin() { $helper = new Facebook\FacebookRedirectLoginHelper(\Idno\Core\site()->config()->getDisplayURL() . 'facebook/callback'); try { return $helper->getSessionFromRedirect(); } catch (\Exception $e) { return false; } } /** * Make an API call * @param $endpoint * @param $verb * @param $params * @return array|bool */ function api($endpoint, $verb = 'GET', $params = null) { if (empty($this->session)) { return false; } try { $response = (new Facebook\FacebookRequest($this->session, $verb, $endpoint, $params))->execute()->getGraphObject(); $result = array('id' => $response->getProperty('id'), 'response' => $response); return $result; } catch (\Exception $e) { \Idno\Core\site()->session()->addMessage($e->getMessage()); return false; } } } }