Как получить длинный доступ (в автономном режиме) к Google API? - PullRequest
0 голосов
/ 19 марта 2020

Задача, которую мне нужно решить, - это получить доступ «gapi.auth2» для Google Sheets и Google Drive через JS в WebBrowser, а затем использовать эти разрешения, предоставленные пользователем напрямую и самостоятельно в течение длительного времени (пока пользователь не получит назад эти разрешения).

Мне нужно иметь возможность изменить (добавить некоторую информацию) в Google Sheet пользователя. Пользователь должен был настроить, какая информация будет добавлена. Вот почему мне нужно сохранять и использовать информацию о доступе (access & refre sh tokens) в автономном режиме.

Код, который я пробовал:

<code><div>
    <p>Google Sheets 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" style="white-space: pre-wrap;">
* Добавить элемент pre к телу, содержащему данное сообщение * в качестве его текстового узла. Используется для отображения результатов вызова API. * * param {string} message Текст для размещения в предварительном элементе. * / function appendPre (message) {var pre = document.getElementById ('content'); var textContent = document.createTextNode (message + '\ n'); pre.appendChild (TextContent); } / ** * Печать имен и специализаций студентов в электронной таблице: Данные класса! A2: E ',}). Then (function (response) {var range = response.result; if (range.values.length> 0) {appendPre (' Name, Major: '); для (i = 0; i

1 Ответ

0 голосов
/ 20 марта 2020

Правильная ссылка была - https://accounts.google.com/o/oauth2/auth?access_type=offline&prompt=consent&redirect_uri=https: // localhost: 44325 & client_id = MyID.apps.googleusercontent.com & scope = https://www.googleapis.com/auth/spreadsheets+https: // www.googleapis.com/auth/drive&response_type=code&state= / profile

" redirect_uri = https://localhost: 44325"not" redirect_uri = https://localhost: 44325 /"

Затем, когда меня перенаправили на" https://localhost : 44325 /"ссылка была следующей" https://localhost: 44325 /? State = / profile & code = 4 / xwFM --- SOME SYMBOLS --- & scope = https://www.googleapis.com/auth/drive%20https: // www.googleapis.com/auth/spreadsheets "

Где" 4 / xwFM --- НЕКОТОРЫЕ СИМВОЛЫ --- "- это мой refre sh токен, как я догадываюсь. Завтра проверю.

UPD. Затем этот код я использую в запросе POST к «https://accounts.google.com/o/oauth2/token» со следующими установленными полями:

grant_type=authorization_code
code='the code from the previous step'
client_id='the client ID token created in the APIs Console'
client_secret='the client secret corresponding to the client ID'
redirect_uri='the URI registered with the client ID'

Подробности: https://developers.google.com/android-publisher/authorization

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...