如何在php 5.3 sdk中通过gmail登录

时间:2016-04-19 10:12:16

标签: php gmail

我正在我的应用中开发gmail登录。但我不知道自己应该做些什么来应对它。我在哪里设置app_idcredential和... 有什么帮助吗?

<?php
require __DIR__ . '/src/autoload.php';

define('APPLICATION_NAME', 'Gmail API PHP Quickstart');
define('CREDENTIALS_PATH', '~/.credentials/gmail-php-quickstart.json');
define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json');
// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/gmail-php-quickstart.json
define('SCOPES', implode(' ', array(
Google_Service_Gmail::GMAIL_READONLY)
));

if (php_sapi_name() != 'cli') {
  throw new Exception('This application must be run on the command line.');
}

function getClient() {
 $client = new Google_Client();
 $client->setApplicationName(APPLICATION_NAME);
 $client->setScopes(SCOPES);
 $client->setAuthConfigFile(CLIENT_SECRET_PATH);
 $client->setAccessType('offline');

$credentialsPath = expandHomeDirectory(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));

// 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);

if ($client->isAccessTokenExpired()) {
 $client->refreshToken($client->getRefreshToken());
 file_put_contents($credentialsPath, $client->getAccessToken());
}
 return $client;
}

function expandHomeDirectory($path) {
$homeDirectory = getenv('HOME');
 if (empty($homeDirectory)) {
   $homeDirectory = getenv("HOMEDRIVE") . getenv("HOMEPATH");
  }
 return str_replace('~', realpath($homeDirectory), $path);
}

 $client = getClient();
 $service = new Google_Service_Gmail($client);

 $user = 'me';
 $results = $service->users_labels->listUsersLabels($user);

if (count($results->getLabels()) == 0) {
print "No labels found.\n";
 } else {
  print "Labels:\n";
  foreach ($results->getLabels() as $label) {
  printf("- %s\n", $label->getName());
 }
}
?>

0 个答案:

没有答案
相关问题