本文整理汇总了PHP中Google_Client::isAccessTokenExpired方法的典型用法代码示例。如果您正苦于以下问题:PHP Google_Client::isAccessTokenExpired方法的具体用法?PHP Google_Client::isAccessTokenExpired怎么用?PHP Google_Client::isAccessTokenExpired使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Google_Client
的用法示例。
在下文中一共展示了Google_Client::isAccessTokenExpired方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testFileCache
public function testFileCache()
{
$this->onlyPhp55AndAbove();
$this->checkServiceAccountCredentials();
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(['https://www.googleapis.com/auth/drive.readonly']);
// filecache with new cache dir
$cache = $this->getCache(sys_get_temp_dir() . '/cloud-samples-tests-php-cache-test/');
$client->setCache($cache);
$token1 = null;
$client->setTokenCallback(function ($cacheKey, $accessToken) use($cache, &$token1) {
$token1 = $accessToken;
$cacheItem = $cache->getItem($cacheKey);
// expire the item
$cacheItem->expiresAt(new DateTime('now -1 second'));
$cache->save($cacheItem);
$cacheItem2 = $cache->getItem($cacheKey);
});
/* Refresh token when expired */
if ($client->isAccessTokenExpired()) {
$client->refreshTokenWithAssertion();
}
/* Make a service call */
$service = new Google_Service_Drive($client);
$files = $service->files->listFiles();
$this->assertInstanceOf('Google_Service_Drive_FileList', $files);
sleep(1);
// make sure the token expires
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(['https://www.googleapis.com/auth/drive.readonly']);
$client->setCache($cache);
$token2 = null;
$client->setTokenCallback(function ($cacheKey, $accessToken) use(&$token2) {
$token2 = $accessToken;
});
/* Make another service call */
$service = new Google_Service_Drive($client);
$files = $service->files->listFiles();
$this->assertInstanceOf('Google_Service_Drive_FileList', $files);
$this->assertNotEquals($token1, $token2);
}
示例2: getGoogleApiClient
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
private function getGoogleApiClient()
{
$client = new Google_Client();
$client->setApplicationName($this->CFG['GOOGLE_API_APPLICATION_NAME']);
$client->setScopes(Google_Service_Calendar::CALENDAR);
$client->setAuthConfigFile($this->CFG['GOOGLE_API_CLIENT_SECRET_PATH']);
$client->setAccessType('offline');
// Load previously authorized credentials from a file.
$credentialsPath = $this->CFG['GOOGLE_API_CREDENTIALS_PATH'];
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n%s\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));
// Exchange authorization code for an access token.
$accessToken = $client->authenticate($authCode);
// Store the credentials to disk.
if (!file_exists(dirname($credentialsPath))) {
mkdir(dirname($credentialsPath), 0700, true);
}
file_put_contents($credentialsPath, $accessToken);
printf("Credentials saved to %s\n", $credentialsPath);
}
$client->setAccessToken($accessToken);
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
$client->refreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, $client->getAccessToken());
}
return $client;
}
示例3: getClient
/**
* Return Google Content Client Instance
*
* @param int $storeId
* @param bool $noAuthRedirect
*
* @return bool|Google_Client
*/
public function getClient($storeId, $noAuthRedirect = false)
{
if (isset($this->_client)) {
if ($this->_client->isAccessTokenExpired()) {
return $this->redirectToAuth($storeId, $noAuthRedirect);
}
return $this->_client;
}
$clientId = $this->getConfig()->getConfigData('client_id', $storeId);
$clientSecret = $this->getConfig()->getClientSecret($storeId);
$accessToken = $this->_getAccessToken($storeId);
if (!$clientId || !$clientSecret) {
Mage::getSingleton('adminhtml/session')->addError("Please specify Google Content API access data for this store!");
return false;
}
if (!isset($accessToken) || empty($accessToken)) {
return $this->redirectToAuth($storeId, $noAuthRedirect);
}
$this->_client = new Google_Client();
$this->_client->setApplicationName(self::APPNAME);
$this->_client->setClientId($clientId);
$this->_client->setClientSecret($clientSecret);
$this->_client->setScopes('https://www.googleapis.com/auth/content');
$this->_client->setAccessToken($accessToken);
if ($this->_client->isAccessTokenExpired()) {
return $this->redirectToAuth($storeId, $noAuthRedirect);
}
if ($this->getConfig()->getIsDebug($storeId)) {
$this->_client->setLogger(Mage::getModel('gshoppingv2/logger', $this->_client)->setStoreID($storeId));
}
return $this->_client;
}
示例4: refreshToken
public function refreshToken($accessToken)
{
$this->_googleClient->setAccessToken($accessToken);
// Refresh the token if it's expired.
if ($this->_googleClient->isAccessTokenExpired()) {
$this->_googleClient->refreshToken($this->_googleClient->getRefreshToken());
}
return $this->_googleClient->getAccessToken();
}
示例5: isLoggedIn
/**
* @return string
*/
public function isLoggedIn()
{
if (\Session::has('token')) {
$this->client->setAccessToken(\Session::get('token'));
} else {
return false;
}
if ($this->client->isAccessTokenExpired()) {
\Session::set('token', $this->client->getRefreshToken());
}
return !$this->client->isAccessTokenExpired();
}
示例6: getClient
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
function getClient()
{
global $credentialsPath;
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(GAPI_SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
$client->setAccessType('offline');
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
die("Please, get token via connect.php");
}
$client->setAccessToken($accessToken);
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
$client = refreshToken($client);
}
return $client;
}
示例7: add_google_client
public function add_google_client()
{
$auth_config = $this->get_auth_config();
if (!empty($auth_config)) {
try {
$client = new Google_Client();
$client->setAuthConfig($this->get_auth_config());
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
$client->setAccessType('offline');
$token = $this->get_token();
if ($token) {
$client->setAccessToken($token);
}
if ($client->isAccessTokenExpired()) {
$refresh_token = $this->get_refresh_token();
if ($refresh_token) {
$client->refreshToken($refresh_token);
$this->update_token($client->getAccessToken());
}
}
$this->client = $client;
$this->service = new Google_Service_Analytics($this->client);
} catch (Exception $e) {
$message = 'Google Analytics Error[' . $e->getCode() . ']: ' . $e->getMessage();
$this->disconnect($message);
error_log($message, E_USER_ERROR);
return;
}
}
}
示例8: getClient
function getClient()
{
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET);
$client->setAccessType('offline');
// Load previously authorized credentials from a file.
$credentialsPath = expandHomeDirectory(CREDENTIAL_PATH);
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n\n\t%s\n\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));
// Exchange authorization code for an access token.
$accessToken = $client->authenticate($authCode);
// Store the credentials to disk.
if (!file_exists(dirname($credentialsPath))) {
mkdir(dirname($credentialsPath), 0700, true);
}
file_put_contents($credentialsPath, $accessToken);
printf("Credentials saved to %s\n", $credentialsPath);
}
$client->setAccessToken($accessToken);
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
$client->refreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, $client->getAccessToken());
}
return $client;
}
示例9: create
/**
* @throws MissingConfigurationException
* @return \Google_Client
*/
public function create()
{
$client = new \Google_Client();
$requiredAuthenticationSettings = array('applicationName', 'clientId', 'clientSecret', 'developerKey');
foreach ($requiredAuthenticationSettings as $key) {
if (!isset($this->authenticationSettings[$key])) {
throw new MissingConfigurationException(sprintf('Missing setting "TYPO3.Neos.GoogleAnalytics.authentication.%s"', $key), 1415796352);
}
}
$client->setApplicationName($this->authenticationSettings['applicationName']);
$client->setClientId($this->authenticationSettings['clientId']);
$client->setClientSecret($this->authenticationSettings['clientSecret']);
$client->setDeveloperKey($this->authenticationSettings['developerKey']);
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
$client->setAccessType('offline');
$accessToken = $this->tokenStorage->getAccessToken();
if ($accessToken !== NULL) {
$client->setAccessToken($accessToken);
if ($client->isAccessTokenExpired()) {
$refreshToken = $this->tokenStorage->getRefreshToken();
$client->refreshToken($refreshToken);
}
}
return $client;
}
示例10: getClient
function getClient()
{
$config = (include __DIR__ . '/ini.php');
$client = new Google_Client();
$client->setApplicationName("Webkameleon");
$client->setClientId($config['oauth2_client_id']);
$client->setClientSecret($config['oauth2_client_secret']);
$client->setRedirectUri($config['oauth2_redirect_uri']);
$client->setScopes($config['oauth2_scopes']);
$client->setState('offline');
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
die($client->getAccessToken());
} elseif (!isset($config['token'])) {
Header('Location: ' . $client->createAuthUrl());
} else {
$client->setAccessToken($config['token']);
if ($client->isAccessTokenExpired()) {
$token = json_decode($config['token'], true);
$client->refreshToken($token['refresh_token']);
}
}
return $client;
}
示例11: onNextendYoutube
function onNextendYoutube(&$google, &$youtube)
{
$config = new NextendData();
$config->loadJson(NextendSmartSliderStorage::get(self::$_group));
if (!class_exists('Google_Client')) {
require_once dirname(__FILE__) . '/googleclient/Google_Client.php';
}
if (!class_exists('Google_YouTubeService')) {
require_once dirname(__FILE__) . '/googleclient/contrib/Google_YouTubeService.php';
}
$google = new Google_Client();
$google->setClientId($config->get('apikey', ''));
$google->setClientSecret($config->get('apisecret', ''));
$token = $config->get('token', null);
if ($token) {
$google->setAccessToken($token);
}
$youtube = new Google_YouTubeService($google);
if ($google->isAccessTokenExpired()) {
$token = json_decode($google->getAccessToken(), true);
if (isset($token['refresh_token'])) {
$google->refreshToken($token['refresh_token']);
$config->set('token', $google->getAccessToken());
NextendSmartSliderStorage::set(self::$_group, $config->toJSON());
}
}
}
示例12: signin
public function signin()
{
$client = new \Google_Client();
$client->setClientId(Config::get('ntentan:social.google.client_id'));
$client->setClientSecret(Config::get('ntentan:social.google.client_secret'));
$client->setRedirectUri(Config::get('ntentan:social.google.redirect_uri'));
$client->addScope(array('profile', 'email'));
$oauth2 = new \Google_Service_Oauth2($client);
if (isset($_REQUEST['logout'])) {
Session::set('access_token', '');
$client->revokeToken();
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
Session::set('access_token', $client->getAccessToken());
Redirect::path(\ntentan\Router::getRoute());
}
if (isset($_SESSION['access_token'])) {
$client->setAccessToken($_SESSION['access_token']);
}
if ($client->isAccessTokenExpired()) {
$authUrl = $client->createAuthUrl();
header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL));
}
if ($client->getAccessToken()) {
$user = $oauth2->userinfo->get();
$_SESSION['token'] = $client->getAccessToken();
return array('firstname' => $user['given_name'], 'lastname' => $user['family_name'], 'key' => "google_{$user['id']}", 'avatar' => $user['picture'], 'email' => $user['email'], 'email_confirmed' => $user['verified_email']);
} else {
header("Location: {$client->createAuthUrl()}");
die;
}
return false;
}
示例13: refreshAuthToken
private function refreshAuthToken(\Google_Client $client)
{
if ($client->isAccessTokenExpired()) {
$client->refreshToken($client->getRefreshToken());
file_put_contents(CREDENTIALS_FILE, $client->getAccessToken());
}
}
示例14: getClient
function getClient()
{
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
$client->setAccessType('offline');
$credentialsPath = CREDENTIALS_PATH;
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n%s\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));
$accessToken = $client->authenticate($authCode);
if (!file_exists(dirname($credentialsPath))) {
mkdir(dirname($credentialsPath), 0700, true);
}
file_put_contents($credentialsPath, $accessToken);
printf("Credentials saved to %s\n", $credentialsPath);
}
$client->setAccessToken($accessToken);
if ($client->isAccessTokenExpired()) {
$client->refreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, $client->getAccessToken());
}
return $client;
}
示例15: getClient
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
function getClient()
{
global $credentialsPath, $client;
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(GAPI_SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
$client->setAccessType('offline');
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
logStatusFailure("Please, get token via http://" . BASE_SERVER . "/connect.php");
closeSession();
}
$client->setAccessToken($accessToken);
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
logMessage("Token Expired. Refreshing via curl connect");
$ch = curl_init("http://" . BASE_SERVER . "/connect.php");
curl_exec($ch);
curl_close($ch);
}
return $client;
}