public function authorize($provider = 'apontador') { if ($provider == 'foursquare') { $callbackurl = ROOT_URL . "oauth/callback/foursquare"; $api = new FourSquareApiV2(\FOURSQUARE_CONSUMER_KEY, \FOURSQUARE_CONSUMER_SECRET, $callbackurl); $api->authenticate(); exit; } elseif ($provider == 'twitter') { $callbackurl = ROOT_URL . "oauth/callback/twitter"; $api = new TwitterOAuth(\TWITTER_CONSUMER_KEY, \TWITTER_CONSUMER_SECRET); $request_token = $api->getRequestToken($callbackurl); $token = $request_token['oauth_token']; Session::write('twitterToken', $request_token['oauth_token']); Session::write('twitterTokenSecret', $request_token['oauth_token_secret']); switch ($api->http_code) { case 200: $oauthCallbackUrl = $api->getAuthorizeURL($token); break; default: echo 'Could not connect to Twitter. Refresh the page or try again later.'; } $this->redirect($oauthCallbackUrl); } elseif ($provider == 'facebook') { $api = new Facebook(array('appId' => \FACEBOOK_AP_ID, 'secret' => \FACEBOOK_SECRET, 'cookie' => true)); $callbackurl = ROOT_URL . "oauth/callback/facebook"; $oauthCallbackUrl = $api->getLoginUrl(array('next' => $callbackurl, 'req_perms' => 'publish_stream')); $this->redirect($oauthCallbackUrl); } elseif ($provider == 'orkut') { $callbackurl = ROOT_URL . "oauth/callback/orkut"; $scope = 'https://orkut.gmodules.com/social/rest https://www.googleapis.com/auth/latitude'; $api = new OrkutOAuth(\ORKUT_CONSUMER_KEY, \ORKUT_CONSUMER_SECRET); $request_token = $api->getRequestToken($callbackurl, $scope); $token = $request_token['oauth_token']; Session::write('orkutToken', $request_token['oauth_token']); Session::write('orkutTokenSecret', $request_token['oauth_token_secret']); switch ($api->http_code) { case 200: $oauthCallbackUrl = $api->getAuthorizeURL($token); break; default: echo 'Could not connect to Orkut. Refresh the page or try again later.'; } $this->redirect($oauthCallbackUrl); } elseif ($provider == 'apontador') { $login = Session::read('login'); if (empty($login) && APONTADOR_POST_LOGIN == true) { $this->redirect('/oauth/login'); } $api = new ApontadorApi(); $callbackurl = ROOT_URL . "oauth/callback/apontador"; $oauthCallbackUrl = $api->apontadorRedirectAutorizacao($callbackurl); $this->redirect($oauthCallbackUrl); } }