Вы неправильно входите в свой клиент Js start
<code> <!DOCTYPE html>
<html>
<head>
<title>Gmail API Quickstart</title>
<meta charset='utf-8' />
</head>
<body>
<p>Gmail API Quickstart</p>
<!--Add buttons to initiate auth sequence and sign out-->
<button id="authorize-button" style="display: none;">Authorize</button>
<button id="signout-button" style="display: none;">Sign Out</button>
<pre id="content">
// Идентификатор клиента и ключ API из консоли разработчика
var CLIENT_ID = '';
// Массив URL-адресов документов для обнаружения API для API, используемых при быстром запуске
var DISCOVERY_DOCS = ["
https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"];
// Области авторизации, требуемые API; несколько областей могут быть
// включено, разделено пробелами.
var SCOPES = '
https://www.googleapis.com/auth/gmail.readonly';
var authorizeButton = document.getElementById ('кнопка авторизации');
var signoutButton = document.getElementById ('кнопка для выхода');
/ **
* При загрузке вызывается для загрузки библиотеки auth2 и клиентской библиотеки API.
* /
function handleClientLoad () {
gapi.load ('client: auth2', initClient);
}
/ **
* Инициализирует клиентскую библиотеку API и устанавливает состояние входа
* слушатели.
* /
function initClient () {
gapi.client.init ({
discoveryDocs: DISCOVERY_DOCS,
clientId: CLIENT_ID,
область применения: ОБЛАСТИ ПРИМЕНЕНИЯ
}). then (function () {
// Прослушивание изменений состояния входа.
. Gapi.auth2.getAuthInstance () isSignedIn.listen (updateSigninStatus);
// Обработка начального состояния входа.
updateSigninStatus (gapi.auth2.getAuthInstance () isSignedIn.get ().);
authorizeButton.onclick = handleAuthClick;
signoutButton.onclick = handleSignoutClick;
});
}
/ **
* Вызывается при изменении статуса входа в систему для обновления пользовательского интерфейса.
* соответственно. После входа вызывается API.
* /
function updateSigninStatus (isSignedIn) {
if (isSignedIn) {
authorizeButton.style.display = 'none';
signoutButton.style.display = 'block';
listLabels ();
} еще {
authorizeButton.style.display = 'block';
signoutButton.style.display = 'none';
}
}
/ **
* Войдите в систему после нажатия кнопки.
* /
function handleAuthClick (event) {
. Gapi.auth2.getAuthInstance () зарегистрировались ();
}
/ **
* Выход пользователя после нажатия кнопки.
* /
function handleSignoutClick (event) {
. Gapi.auth2.getAuthInstance () SignOut ();
}
/ **
* Добавить элемент pre к телу, содержащему данное сообщение
* как его текстовый узел. Используется для отображения результатов вызова API.
*
* @param {string} message Текст для размещения в предварительном элементе.
* /
function appendPre (message) {
var pre = document.getElementById ('content');
var textContent = document.createTextNode (message + '\ n');
pre.appendChild (TextContent);
}
/ **
* Распечатайте все ярлыки в почтовом ящике авторизованного пользователя. Если нет ярлыков
* найдено соответствующее сообщение.
* /
function listLabels () {
gapi.client.gmail.users.labels.list ({
'userId': 'me'
}). then (function (response) {
var tags = response.result.labels;
appendPre ( 'Ярлыки:');
if (tags && tags.length> 0) {
для (я = 0; я <метки.длина; я ++) {
переменная метка = метки [я];
appendPre (label.name)
}
} еще {
appendPre ('Метки не найдены.');
}
});
}
</script>