index.html - Andrey-Kozak/CRM-S GitHub Wiki
<! DOCTYPE html>
<title> Быстрый запуск API скриптов Google Apps </ title> </ head>Быстрый запуск API скриптов Google Apps < / p> <! - Добавить кнопки для запуска последовательности авторизации и выхода -> Авторизовать </ button> <button id = "signout_button"style = " display :
нет ; " > Выйти </ button> <pre id = " content " style = " white-space : pre-wrap ; " > </ pre> <script type = " text / javascript " > // Идентификатор клиента и ключ API из консоли разработчика var CLIENT_ID = '944990677077-fem1gfc6u6shhh1potjcskkuaocs62bj.apps.googleusercontent.com' ; var API_KEY = 'AIzaSyDWuJYCq_gxSzzp0T6dr9nTBZkBAeBNa-0' ;
"https://script.googleapis.com/$discovery/rest?version=v1" ]; // Области авторизации, требуемые API; можно включить несколько областей , разделенных пробелами. var SCOPES = 'https://www.googleapis.com/auth/script.projects' ; var authorizeButton = документ . getElementById ( 'authorize_button' ); var signoutButton = документ . getElementById ( 'signout_button' ); / ** * При загрузке вызывается для загрузки библиотеки auth2 и клиентской библиотеки API. * / функция
handleClientLoad () { gapi . load ( 'client: auth2' , initClient ); } / ** * Инициализирует клиентскую библиотеку API и устанавливает прослушиватели состояния входа *. * / function initClient () { gapi . клиент . init ({ apiKey : API_KEY , clientId : CLIENT_ID , discoveryDocs : DISCOVERY_DOCS , область действия :
ОБЛАСТИ ПРИМЕНЕНИЯ }). then ( function () { // Прослушивание изменений состояния входа . gapi . auth2 . getAuthInstance (). isSignedIn . listen ( updateSigninStatus ); // Обработка исходного состояния входа. updateSigninStatus ( gapi . auth2 . getAuthInstance () . isSignedIn . get ()); authorizeButton . onclick = handleAuthClick ; signoutButton .
onclick = handleSignoutClick ; }, function ( error ) { appendPre ( JSON . stringify ( error , null , 2 )); }); } / ** * Вызывается при изменении статуса входа в систему, чтобы соответствующим образом обновить пользовательский интерфейс *. После входа вызывается API. * / function updateSigninStatus ( isSignedIn ) { if ( isSignedIn ) { authorizeButton .
стиль . display = 'none' ; SignoutButton . стиль . дисплей = «блок» ; callAppsScript (); } else { authorizeButton . стиль . дисплей = «блок» ; SignoutButton . стиль . display = 'none' ; } } / ** * Войдите в систему после нажатия кнопки. * / function handleAuthClick ( событие
) { gapi . auth2 . getAuthInstance (). signIn (); } / ** * Выйти из пользователя после нажатия кнопки. * / 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' ); заранее . appendChild ( textContent ); } / ** * Показывает базовое использование API скриптов приложений. * * Вызовите API скриптов приложений, чтобы создать новый проект скрипта, загрузить файлы
* к проекту, и войдите в URL скрипта для пользователя.
* / function callAppsScript () { gapi . клиент . скрипт . проекты . создать ({ ресурс : { title : 'My Script' } }). then (( resp ) => { return gapi . client . script . projects . updateContent ({ scriptId : resp
, результат . scriptId , ресурс : { files : [{ name : 'hello' , тип : 'SERVER_JS' , source : 'function helloWorld () {\ n console.log ("Hello, world!"); \ n}' }, { имя : 'appsscript' , тип : 'JSON' , источник : "{" timeZone \ ": " America / New_York \ ", " " + "
}] } }); }). то (( соответственно ) => { пусть результат = соотв . результат , если ( результат . ошибка ) броска результат . Ошибка , консоль . журнал ( ` HTTPS : //script.google.com/d/${result.scriptId}/ edit`); }). catch (( error ) => { // API столкнулся с проблемой. вернуть консоль . log (`
API возвратил ошибку : $ { ошибки } `); }); } </ script> <script async defer src = "https://apis.google.com/js/api.js" onload = " this . onload = function () {}; handleClientLoad () " onreadystatechange = " if ( this . readyState === 'complete' ) this . onload () " > </ script> </ body>
</ Html>