Google Admin SDK — Добавить пользователей в каталог API с помощью oauth2callback.php вместо добавления клиента / секрет в файл?

После изучения примеров из 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">&nbsp;</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">&nbsp;</div>
</div></div></body>
</html>

0

Решение

Вы хотите перейти с OAuth 1.0 на OAuth 2.0.

Вот руководство по миграции на уровне протокола от Google это на уровне протокола.

Вероятно, будет более полезным, хотя это Руководство OAuth 2.0 для клиентской библиотеки PHP. Вот пример, который вы ищете: использование файла client_secrets.json.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]