Exemplo n.º 1
0
 private function initInstagram(array $options = array())
 {
     $config = array('client_id' => JO_Registry::get('oauth_in_key'), 'client_secret' => JO_Registry::get('oauth_in_secret'), 'grant_type' => 'authorization_code', 'redirect_uri' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram'));
     $this->instagram = new WM_Instagram(JO_Array::array_extend($config, $options));
     if ($this->user_data) {
         return true;
     }
     if (JO_Session::get('user[user_id]')) {
         if (JO_Session::get('user[instagram_connect]') != 1 && !$this->getRequest()->getParam('state')) {
             return false;
         }
     }
     $InstagramAccessToken = $this->instagram->getAccessToken();
     $user_data = JO_Json::decode($this->instagram->getUser(), true);
     if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $this->user_data = $user_data['data'];
     } elseif ($InstagramAccessToken) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $this->instagram->setAccessToken($InstagramAccessToken);
     } elseif (JO_Session::get('InstagramAccessToken')) {
         $this->instagram->setAccessToken(JO_Session::get('InstagramAccessToken'));
     } elseif (JO_Session::get('user[instagram_token]')) {
         $this->instagram->setAccessToken(JO_Session::get('user[instagram_token]'));
     }
     if (!$this->user_data) {
         $user_data = JO_Json::decode($this->instagram->getUser(), true);
         if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
             $this->user_data = $user_data['data'];
         }
     }
     return $this->user_data ? true : false;
 }
Exemplo n.º 2
0
 public function instagram_connectAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user[user_id]')) {
         if (!$request->isXmlHttpRequest()) {
             $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         }
         exit('[]');
     }
     if ($request->getQuery('state') && $request->getQuery('state') == JO_Session::get('state')) {
         $state = JO_Session::get('state');
     } else {
         $state = md5(uniqid(rand(), TRUE));
         JO_Session::set('state', $state);
     }
     $config = array('client_id' => JO_Registry::get('oauth_in_key'), 'client_secret' => JO_Registry::get('oauth_in_secret'), 'grant_type' => 'authorization_code', 'redirect_uri' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram&next=' . urlencode(WM_Router::create($request->getBaseUrl() . '?controller=settings&action=instagram_connect&state=' . $state))));
     $instagram = new WM_Instagram($config);
     $InstagramAccessToken = $instagram->getAccessToken();
     $user_data = JO_Json::decode($instagram->getUser(), true);
     if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
     } elseif ($InstagramAccessToken) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $instagram->setAccessToken($InstagramAccessToken);
     } elseif (JO_Session::get('InstagramAccessToken')) {
         $instagram->setAccessToken(JO_Session::get('InstagramAccessToken'));
     } elseif (JO_Session::get('user[instagram_token]')) {
         JO_Session::set('InstagramAccessToken', JO_Session::get('user[instagram_token]'));
         $instagram->setAccessToken(JO_Session::get('user[instagram_token]'));
     }
     if (!isset($user_data['meta']['code']) || $user_data['meta']['code'] != 200) {
         $user_data = JO_Json::decode($instagram->getUser(), true);
     }
     if ($request->getQuery('state') && $request->getQuery('state') == JO_Session::get('state') && isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::clear('state');
         Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '1', 'instagram_profile_id' => $user_data['data']['id'], 'instagram_token' => (string) JO_Session::get('InstagramAccessToken')));
         $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         exit;
     }
     if ($request->getPost('instagram_connect') == 'on') {
         if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
             Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '1', 'instagram_profile_id' => $user_data['data']['id'], 'instagram_token' => (string) JO_Session::get('InstagramAccessToken')));
         } else {
             JO_Session::set('InstagramAccessToken', false);
             JO_Session::set('user[instagram_token]', array_merge((array) JO_Session::get('user'), array('instagram_token' => null)));
             $this->view->login = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram&next=' . urlencode(WM_Router::create($request->getBaseUrl() . '?controller=settings&action=instagram_connect&state=' . $state)));
         }
     } else {
         Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '0', 'instagram_profile_id' => '0', 'instagram_token' => ''));
     }
     if (!$this->view->login) {
         $ud = Model_Users::getUser(JO_Session::get('user[user_id]'), true);
         if ($ud) {
             $this->view->connected = $ud['instagram_connect'] ? 'on' : 'off';
         } else {
             JO_Session::set('InstagramAccessToken', false);
             JO_Session::set('user[instagram_token]', array_merge((array) JO_Session::get('user'), array('instagram_token' => null)));
             $this->view->connected = 'off';
         }
     }
     if (!$request->isXmlHttpRequest()) {
         $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         exit;
     }
     echo $this->renderScript('json');
 }