Ejemplo n.º 1
0
/**
 * getAuthedGoogleClient
 *
 * Will return a Google_Client on success,
 * or false on failure.
 *
 * @return mixed
 */
function getAuthedGoogleClient($userId)
{
    $fcmsError = FCMS_Error::getInstance();
    $config = getGoogleConfigData();
    $user = getGoogleUserData($userId);
    if (empty($user['google_session_token'])) {
        return false;
    }
    if (empty($config['google_client_id']) || empty($config['google_client_secret'])) {
        return false;
    }
    // Setup url for callbacks
    $callbackUrl = getDomainAndDir();
    $callbackUrl .= 'settings.php?view=google&oauth2callback';
    $googleClient = new Google_Client();
    $googleClient->setClientId($config['google_client_id']);
    $googleClient->setClientSecret($config['google_client_secret']);
    $googleClient->setAccessType('offline');
    $googleClient->setScopes(array('https://www.googleapis.com/auth/youtube.force-ssl', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile', 'https://picasaweb.google.com/data/'));
    $googleClient->setRedirectUri($callbackUrl);
    // We still have a token saved
    if (isset($_SESSION['googleSessionToken'])) {
        try {
            $googleClient->setAccessToken($_SESSION['googleSessionToken']);
            // Make sure our access token is still good
            if ($googleClient->isAccessTokenExpired()) {
                $googleClient->refreshToken($user['google_session_token']);
            }
        } catch (Exception $e) {
            $fcmsError->add(array('type' => 'operation', 'message' => 'Could not get Google Session Token.', 'error' => $e, 'file' => __FILE__, 'line' => __LINE__));
            return false;
        }
    } elseif (!empty($user['google_session_token'])) {
        try {
            $googleClient->refreshToken($user['google_session_token']);
            $_SESSION['googleSessionToken'] = $googleClient->getAccessToken();
        } catch (Exception $e) {
            $fcmsError->add(array('type' => 'operation', 'message' => 'Could not get Google Session Token.', 'error' => $e, 'file' => __FILE__, 'line' => __LINE__));
            return false;
        }
    }
    return $googleClient;
}
Ejemplo n.º 2
0
 /**
  * displayEditGoogle
  * 
  * @return void
  */
 function displayEditGoogle()
 {
     $this->displayHeader();
     $config = getGoogleConfigData();
     $user = getGoogleUserData($this->fcmsUser->id);
     // Setup url for callbacks
     $callbackUrl = getDomainAndDir();
     $callbackUrl .= 'settings.php?view=google&oauth2callback';
     $_SESSION['callback_url'] = $callbackUrl;
     if (!empty($config['google_client_id']) || !empty($config['google_client_secret'])) {
         $googleClient = new Google_Client();
         $googleClient->setClientId($config['google_client_id']);
         $googleClient->setClientSecret($config['google_client_secret']);
         $googleClient->setAccessType('offline');
         $googleClient->setScopes(array('https://www.googleapis.com/auth/youtube.force-ssl', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile', 'https://picasaweb.google.com/data/'));
         $googleClient->setRedirectUri($callbackUrl);
         // We still have a token saved
         if (isset($_SESSION['googleSessionToken'])) {
             try {
                 $googleClient->setAccessToken($_SESSION['googleSessionToken']);
                 // Make sure our access token is still good
                 if ($googleClient->isAccessTokenExpired()) {
                     $googleClient->refreshToken($user['google_session_token']);
                 }
             } catch (Exception $e) {
                 $failure = 1;
             }
         } elseif (!empty($user['google_session_token'])) {
             try {
                 $googleClient->refreshToken($user['google_session_token']);
                 $_SESSION['googleSessionToken'] = $googleClient->getAccessToken();
             } catch (Exception $e) {
                 $failure = 1;
             }
         }
         if (!isset($failure) && isset($_SESSION['googleSessionToken'])) {
             try {
                 $youtube = new Google_Service_YouTube($googleClient);
                 $channel = $youtube->channels->listChannels('id', array('mine' => 'true'));
             } catch (Exception $e) {
                 echo '<div class="error-alert">ERROR: ' . $e->getMessage() . '</div>';
                 $this->displayFooter();
                 return;
             }
             $oAuth = new Google_Service_Oauth2($googleClient);
             $userInfo = $oAuth->userinfo->get();
             $user = '******' . $channel->items[0]['id'] . '">' . $userInfo->email . '</a>';
             $status = sprintf(T_('Currently connected as: %s'), $user);
             $link = '<a class="disconnect" href="?revoke=google">' . T_('Disconnect') . '</a>';
         } else {
             $state = mt_rand();
             $googleClient->setState($state);
             $_SESSION['state'] = $state;
             $url = $googleClient->createAuthUrl();
             $status = T_('Not Connected');
             $link = '<a href="' . $url . '">' . T_('Connect') . '</a>';
         }
     }
     echo '
     <div class="social-media-connect">
         <img class="icon" src="ui/img/google.png" alt="Google"/>
         <h2>Google</h2>
         <p>' . T_('Connecting with Google will allow you to:') . '</p>
         <ul>
             <li>' . T_('Share your Picasa photos with this site.') . '</li>
             <li>' . T_('Share your YouTube videos with this site.') . '</li>
         </ul>
         <div class="status">' . $status . '</div>
         <div class="action">' . $link . '</div>
     </div>';
     $this->displayFooter();
 }
Ejemplo n.º 3
0
Archivo: utils.php Proyecto: lmcro/fcms
/**
 * userConnectedSocialMedia 
 * 
 * @param int $userId 
 * 
 * @return boolean
 */
function userConnectedSocialMedia($userId)
{
    // Get Social Media data
    $facebook = getUserFacebookAccessToken($userId);
    $foursquare = getFoursquareUserData($userId);
    $google = getGoogleUserData($userId);
    // Facebook
    if (!empty($facebook)) {
        return true;
    }
    // Foursquare
    if (!empty($foursquare['fs_user_id']) && !empty($foursquare['fs_access_token'])) {
        return true;
    }
    // Google
    if (!empty($google['google_session_token'])) {
        return true;
    }
    return false;
}