[WORDPRESS] 어떻게 새로 고침 토큰 배경 및 액세스 토큰을 받고 권한을 얻기 위해 사용하는 방법?
WORDPRESS어떻게 새로 고침 토큰 배경 및 액세스 토큰을 받고 권한을 얻기 위해 사용하는 방법?
해결법
-
1.이것은, 내가 문제를 해결하는 방법입니다, 우리는 우리의 데이터베이스에 refreshToken를 저장하고 refreshToken, 우리는 결과를 가져올 수 있습니다 .which 다른 accessToken을 얻을 수 사용 할 필요가 있으며 또 다른 인증이 필요하지 않습니다.
이것은, 내가 문제를 해결하는 방법입니다, 우리는 우리의 데이터베이스에 refreshToken를 저장하고 refreshToken, 우리는 결과를 가져올 수 있습니다 .which 다른 accessToken을 얻을 수 사용 할 필요가 있으며 또 다른 인증이 필요하지 않습니다.
<?php $client = new Google_Client(); $client->setAuthConfigFile(plugin_dir_url( __FILE__ ) . '/client_secrets.json'); $client->setRedirectUri( site_url() . '/wp-admin/admin.php?page=analytica-admin-settings'); $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); $client->setIncludeGrantedScopes(true); $client->setAccessType('offline'); if ( isset( $_GET['code'] )) { if($client->isAccessTokenExpired()){ $client->authenticate($_GET['code']); $accessToken = $client->getAccessToken(); $refreshToken = $client->getRefreshToken(); $analytica_tokens = json_encode( array( 'time' => current_time( 'mysql' ),'accessToken' => $accessToken, 'refreshToken' => $refreshToken ) ); update_option( 'analytica_tokens', $analytica_tokens ); } } else { $resultset = json_decode(get_option('analytica_tokens')); if ($client->isAccessTokenExpired()) { if( isset( $resultset ) ){ $refreshToken = $resultset->refreshToken; $client->refreshToken( $refreshToken ); $accessToken = $client->getAccessToken(); $analytica_tokens = json_encode( array( 'time' => current_time( 'mysql' ), 'accessToken' => $accessToken, 'refreshToken' => $refreshToken ) ); update_option( 'analytica_tokens', $analytica_tokens ); } else { echo 'You need to reauthorize the application to get the analytics report.'; } } } $auth_url = $client->createAuthUrl(); ?> <a class="connect-to-google-analytics" href='<?php echo $auth_url; ?>' id="loginText">Connect To Your Google Analytics Account </a> <?php if( isset($accessToken) ){ $_SESSION['access_token'] = $accessToken ? $accessToken : $refreshToken; $client->setAccessToken($_SESSION['access_token']); // Create an authorized analytics service object. $analytics = new Google_Service_Analytics($client); // Get the first view (profile) id for the authorized user. $profile = $this->getFirstProfileId($analytics); // Get the results from the Core Reporting API and print the results. $this->results = $this->getResults($analytics, $profile); } ?>
from https://stackoverflow.com/questions/33870439/how-to-use-refresh-token-to-get-authorized-in-background-and-getting-access-toke by cc-by-sa and MIT license