После изучения примеров из Google PHP QuickStart мне удалось создать простую страницу, которая читает список пользователей и отображает их в виде таблицы.
Теперь я пытаюсь создать форму ДОБАВИТЬ.
Все примеры из 2013-2014 и используют ID / Secret внутри файла.
Есть ли способ использовать второй пример с oauth2callback и секретными файлами json для добавления пользователей?
Вот как выглядит outh2callback
<?php
require_once 'google-api-php-client/src/Google/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$scopes = array(
'https://www.googleapis.com/auth/admin.directory.user',
'https://www.googleapis.com/auth/admin.directory.group'
);
$client->addScope($scopes);
if (! isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
И страница просмотра, которая отображает пользователей
<?php
require_once 'google-api-php-client/src/Google/autoload.php';session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secrets.json');
$scopes = array(
'https://www.googleapis.com/auth/admin.directory.user',
'https://www.googleapis.com/auth/admin.directory.group'
);
$client->addScope($scopes);if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$service = new Google_Service_Directory($client);
$optParams = array(
'customer' => 'my_customer',
'orderBy' => 'email',
);
$results = $service->users->listUsers($optParams); }
else {
header('Location: oauth2callback.php');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Google List</title>
<link href="css/bootstrap.css" rel="stylesheet" media="screen">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<link href="css/style.css" rel="stylesheet" media="screen">
</head>
<body><div class="container-fluid">
<div class="row">
<div class="col-md-4"> </div>
<div class="col-md-4">
<form action="index.php" method="POST">
<pre>
First Name <input type="text" name='first_name' placeholder='First Name' required>
Last Name <input type="text" name='last_name' placeholder ='Last Name' required>
Email <input type="email" name='email' placeholder ='Email' required>
<button type="submit" name='save'>Submit</button>
</pre></form>
<a href="logout.php?logout"> Logout from Google</a>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th><span style="text-align:center;">Nume</span></th>
<th><span style="text-align:center;">Mail</span></th
></tr>
</thead>
<tbody>
<?php
foreach ($results->getUsers() as $user) {
echo '<tr>';
echo'<td>'. $user->getName()->getFullName() . '</td>';
echo'<td>'. $user->getPrimaryEmail() . '</td>';
echo '</tr>';
}
?>
</tbody>
</table></div>
<div class="col-md-4"> </div>
</div></div></body>
</html>
Вы хотите перейти с OAuth 1.0 на OAuth 2.0.
Вот руководство по миграции на уровне протокола от Google это на уровне протокола.
Вероятно, будет более полезным, хотя это Руководство OAuth 2.0 для клиентской библиотеки PHP. Вот пример, который вы ищете: использование файла client_secrets.json.
Других решений пока нет …