if (strlen($client->access_token)) { $success = $client->CallAPI('https://graph.facebook.com/me', 'GET', array(), array('FailOnAccessError' => true), $user); } } // LinkedIn if ($OAuth_servicio == 'LinkedIn') { if (strlen($client->access_token)) { $success = $client->CallAPI('http://api.linkedin.com/v1/people/~', 'GET', array('format' => 'json'), array('FailOnAccessError' => true), $user); } } // Instagram if ($OAuth_servicio == 'Instagram') { if (strlen($client->access_token)) { $success = $client->CallAPI('https://api.instagram.com/v1/users/self/', 'GET', array(), array('FailOnAccessError' => true), $user); if (!$success) { $client->ResetAccessToken(); } } } // Dropbox if ($OAuth_servicio == 'Dropbox') { if (strlen($client->access_token)) { $success = $client->CallAPI('https://api.dropbox.com/1/account/info', 'GET', array(), array('FailOnAccessError' => true), $user); } } // Microsoft if ($OAuth_servicio == 'Microsoft') { if (strlen($client->authorization_error)) { $client->error = $client->authorization_error; $success = false; } elseif (strlen($client->access_token)) {
public static function Dropbox($oTenant) { $bResult = false; $oUser = null; $bDropboxAllow = $oTenant->SocialDropboxAllow; $sDropboxId = $oTenant->SocialDropboxKey; $sDropboxSecret = $oTenant->SocialDropboxSecret; $sRedirectUrl = rtrim(\MailSo\Base\Http::SingletonInstance()->GetFullUrl(), '\\/ ') . '/?dropbox'; if (!strpos($sRedirectUrl, '://localhost')) { $sRedirectUrl = str_replace('http:', 'https:', $sRedirectUrl); } if ($bDropboxAllow) { require PSEVEN_APP_ROOT_PATH . 'libraries/OAuthClient/http.php'; require PSEVEN_APP_ROOT_PATH . 'libraries/OAuthClient/oauth_client.php'; $oClient = new \oauth_client_class(); $oClient->debug = self::$Debug; $oClient->debug_http = self::$Debug; $oClient->server = 'Dropbox2'; $oClient->redirect_uri = $sRedirectUrl; $oClient->client_id = $sDropboxId; $application_line = __LINE__; $oClient->client_secret = $sDropboxSecret; $oClient->configuration_file = PSEVEN_APP_ROOT_PATH . 'libraries/OAuthClient/' . $oClient->configuration_file; if (strlen($oClient->client_id) == 0 || strlen($oClient->client_secret) == 0) { $bResult = false; exit('Please go to Dropbox Apps page https://www.dropbox.com/developers/apps , ' . 'create an application, and in the line ' . $application_line . ' set the client_id to Consumer key and client_secret with Consumer secret. ' . 'The Callback URL must be ' . $oClient->redirect_uri) . ' Make sure this URL is ' . 'not in a private network and accessible to the Dropbox site.'; } if ($success = $oClient->Initialize()) { if ($success = $oClient->Process()) { if (strlen($oClient->access_token)) { $success = $oClient->CallAPI('https://api.dropbox.com/1/account/info', 'GET', array(), array('FailOnAccessError' => true), $oUser); } } $success = $oClient->Finalize($success); } if ($oClient->exit) { $bResult = false; exit; } if ($success && $oUser) { // if you need re-ask user for permission //$oClient->ResetAccessToken(); $aSocial = array('type' => 'dropbox', 'id' => $oUser->uid, 'name' => $oUser->display_name, 'email' => isset($oUser->email) ? $oUser->email : '', 'access_token' => $oClient->access_token); \CApi::Log('social_user_dropbox'); \CApi::LogObject($oUser); $bResult = $aSocial; } else { $bResult = false; $oClient->ResetAccessToken(); self::_socialError($oClient->error, 'dropbox'); } } return $bResult; }
public static function service_social_login_naver() { if (isset($_GET['sym-api']) && $_GET['sym-api'] == 'service-social-login-naver') { update_option(WSKL_PREFIX . 'sym-api-' . $_SERVER['HTTP_CLIENT_IP'], 'service-social-login-naver'); } if (isset($_GET['sym-api']) && $_GET['sym-api'] == 'service-social-login-naver' || isset($_GET['code']) && get_option(WSKL_PREFIX . 'sym-api-' . $_SERVER['HTTP_CLIENT_IP']) == 'service-social-login-naver') { require 'home-social-login/http.php'; require 'home-social-login/oauth_client.php'; $client = new oauth_client_class(); $client->debug = FALSE; $client->debug_http = TRUE; $client->server = 'Naver'; $client->redirect_uri = site_url() . '/index.php'; $client->client_id = get_option(wskl_get_option_name('naver_client_id')); $client->client_secret = get_option(wskl_get_option_name('naver_client_secret')); if (strlen($client->client_id) == 0 || strlen($client->client_secret) == 0) { wskl_sym__alert('네이버 연동키값을 확인해 주세요.'); } if ($login == 'Y') { unset($_SESSION['OAUTH_STATE']); $client->ResetAccessToken(); } /* API permissions */ if ($success = $client->Initialize()) { if ($success = $client->Process()) { if (strlen($client->access_token)) { $success = $client->CallAPI('https://apis.naver.com/nidlogin/nid/getUserProfile.xml', 'POST', array('mode' => 'userinfo'), array('FailOnAccessError' => TRUE), $user); } } $success = $client->Finalize($success); } if ($client->exit) { exit; } if ($success) { $xml = simplexml_load_string($user); if ($xml->result->resultcode == '00') { $client->GetAccessToken($AccessToken); $mb_gubun = 'naver'; $mb_id = $xml->response->enc_id; $mb_name = $xml->response->nickname; $mb_nick = $xml->response->nickname; $mb_email = $xml->response->email; $token_value = $AccessToken['value']; $token_refresh = $AccessToken['refresh']; $token_secret = ''; //$client->ResetAccessToken(); if (!trim($mb_id) || !trim($token_value)) { wskl_sym__alert("정보가 제대로 넘어오지 않아 오류가 발생했습니다."); } $token_array = urlencode(static::encryptIt($mb_gubun . '|' . substr(str_replace('|', '', $mb_id), 0, 18) . '|' . $mb_name . '|' . $mb_nick . '|' . $mb_email)); $redirect_url = '/?sym-api=process-social-login&token=' . $token_array; wp_redirect($redirect_url); exit; } else { $error = htmlspecialchars($xml->result->resultcode); alert_close($error); } } else { $error = htmlspecialchars($client->error); alert_close($error); } } }