public function import($type) { // http://www2.razorit.com/contacts/contacts/import/google if ($type == 'google') { $googleAccessToken = $this->Session->read('Google.accessToken'); // set in UserConnectsController if (!empty($googleAccessToken)) { App::uses('UserConnect', 'Users.Model'); $UserConnect = new UserConnect(); debug($UserConnect->listGoogleContacts($googleAccessToken)); break; // post($accessTokenKey, $accessTokenSecret, $url, array $postData = array()) $response = $this->Client->post($params['code'], $params['client_secret'], 'https://accounts.google.com/o/oauth2/token', $params); debug($googleAccessToken); break; } else { $this->redirect('/users/user_connects/google/contacts%2Fcontacts%2Fimport%2Fgoogle'); } } }
/** * Save the user data to the application. * Configure the saveModel and savePlugin at the top of this controller. * * @return bool * @todo Make this model name variable so that anyone using this plugin can easily change the table it saves data to. */ protected function _connectUser($profileData, $token, $verifier) { if (!empty($this->saveModel)) { App::uses($this->saveModel, $this->savePlugin . '.Model'); $UserConnect = new UserConnect(); $data['UserConnect']['type'] = 'twitter'; $data['UserConnect']['value'] = serialize(array_merge(array('token' => $token), array('verifier' => $verifier), $profileData)); if ($UserConnect->add($data)) { if ($this->Twitter->updateStatus('I just connected my Zuha website to Twitter. @GetZuha')) { return true; } else { throw new Exception(__('test status message failed')); } } else { throw new Exception(__('no user to tie this twitter account to (probably need to auto create a user on our end')); } } else { return true; } }
public static function saveUserConnect($user_id, $user_connect = null) { if ($user_connect != null) { $connect = UserConnect::where('user_id', '=', $user_id)->first(); if ($connect == null) { $connect = new UserConnect(); $connect->user_id = $user_id; } if ($user_connect['provider'] == 'facebook') { // TODO : save profile picture /*$url = 'http://graph.facebook.com/'.$user_connect['id'].'/picture'; $data = file_get_contents($url); $fileName = 'assetsfb_profilepic.jpg'; $file = fopen($fileName, 'w+'); fputs($file, $data); fclose($file);*/ $connect->facebook_user_id = $user_connect['id']; $connect->facebook_oauth_token = $user_connect['token']; } else { if ($user_connect['provider'] == 'twitter') { // TODO : save profile picture /*$url = $user_connect['profile_image_url']; $data = file_get_contents($url); $fileName = 'assetsfb_profilepic.jpg'; $file = fopen($fileName, 'w+'); fputs($file, $data); fclose($file);*/ $connect->twitter_user_id = $user_connect['id']; $connect->twitter_oauth_verifier = $user_connect['verifier']; $connect->twitter_oauth_token = $user_connect['token']; } } $connect->save(); } }
private function checkUserConnect($provider = 'facebook', $result) { // save to session Session::put('user_connect', $result); // check in User Connect table $user_connect = UserConnect::with(array('user')); if ($provider == 'facebook') { $user_connect = $user_connect->where('facebook_user_id', '=', $result['id']); } else { if ($provider == 'twitter') { $user_connect = $user_connect->where('twitter_user_id', '=', $result['id'])->orWhere('twitter_oauth_verifier', '=', $result['verifier']); } } $user_connect = $user_connect->first(); if ($user_connect) { // auto sign in $input = array('id' => $user_connect->user_id, 'password' => $user_connect->user->password); Auth::attempt($input); if (Session::has('redirect')) { $redirecturl = str_replace('_', '/', Session::get('redirect')); Session::forget('redirect'); return Redirect::to($redirecturl); } return Redirect::to(''); } else { // init $redirecturl = ''; if (Session::has('redirect')) { $redirecturl = str_replace('_', '/', Session::get('redirect')); Session::forget('redirect'); } // redirect to signup return Redirect::route('signup')->with('redirecturl', $redirecturl); } }