Я не задаю этот вопрос без поиска и чтения документов. Я провел 2 дня. Я уверен, что мне не хватает. Я пытаюсь реализовать google auth на электронной таблице накопителей. Я пробовал все, но все еще получаю сообщение об ошибке (redirect_uri_mismatch). В принципе, я хочу боковую панель с экраном входа. Пользователь нажимает кнопку, запускает auth magic и перенаправляет на другую html-печать «Успех», когда пользователь разрешает доступ.Google script oauth2 Ошибка: redirect_uri_mismatch
- Я создал проект в google dev console.
созданные учетные
2,1 Идентификатор клиента:
131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com2,2 Клиент секрет: XaebFsC18qfMmcZJKgokLEYo
набор обратного вызова URI:
https: // script.google .com/macros/d/MCgMJPIdD1bbeG1PsFaNug8uUifae5TWT/usercallbackключ проекта: MCgMJPIdD1bbeG1PsFaNug8uUifae5TWT
скрипт ID: 1DYEShH45-AtikbEwfAG8w9P7Y39FHhCB-nGHWHOW4mUtq5DZLvubDxev
якобы projectKey является устаревшим и вместо этого нужно использовать, но ни работы скрипта идентификатор.
Я использую oauth2 поэтому я добавил the external lib: 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
Пояснение: мой файл гс имеет следующий код ниже. Когда вы нажимаете, у меня есть боковая панель с кнопкой вызова onSignIn(). Я ожидаю получить доступ к электронным таблицам с помощью auth. В качестве начальной точки я хочу увидеть страницу авторизации. После принятия его я хочу, чтобы он перенаправлялся на страницу, которая является callback_uri, и демонстрирует что-то простое. Однако это дает мне ошибку. Ироническим этапом была ссылка браузера конечной точки, которую я создал, работал и перенаправлял успешно.
ENDPOINT БРАУЗЕР LINK
Что я делаю неправильно? Ваша помощь приветствуется. Спасибо.
var CLIENT_ID = '131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com';
var CLIENT_SECRET = 'XaebFsC18qfMmcZJKgokLEYo';
function onSignIn() {
var service = getService();
if (!service.hasAccess()) {
var authorizationUrl = service.getAuthorizationUrl();
var template = HtmlService.createTemplate('<a href="<?= authorizationUrl ?>" target="_blank">Authorize</a>');
template.authorizationUrl = authorizationUrl;
var page = template.evaluate();
return HtmlService.createHtmlOutput(page);
}
}
function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
if (authorized) {
return HtmlService.createHtmlOutput('Success!');
} else {
return HtmlService.createHtmlOutput('Denied');
}
}
function getService() {
return OAuth2.createService('spreadsheets_ozzy123')
.setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
.setClientId(CLIENT_ID)
.setClientSecret(CLIENT_SECRET)
.setCallbackFunction('authCallback')
.setScope('https://docs.google.com/feeds') ;
}
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
var html = HtmlService.createTemplateFromFile('LoginSideMenu').evaluate();
SpreadsheetApp.getUi().showSidebar(html);
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename).getContent();
}
ПОЛНЫЙ ОШИБКА
400. That’s an error.
Error: redirect_uri_mismatch
The JavaScript origin in the request, https://n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com?project=131579675294 to update the authorized JavaScript origins.
Learn more
Request Details
redirect_uri=storagerelay://https/n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com?id=auth704130
response_type=permission id_token
scope=email profile openid
openid.realm=
client_id=131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com
ss_domain=https://n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com
fetch_basic_profile=true
gsiwebsdk=2
That’s all we know.
@ShyamKansagra Спасибо, что так много! Я был так уверен, что использовал правильный идентификатор клиента. Получив доступ через Ресурсы -> Расширенные службы, я понял, что это неправильно. Заменили правильные, но все еще не запускали. затем я создал новый лист и перевел весь код на новый. Тогда это сработало !. Я не уверен, как зачислить ваш комментарий. Дай мне знать. – BinaryWo
Добро пожаловать :) Я добавил тот же комментарий, что и ответ. Вы можете принять его. –