Перенаправить Google sheets на функцию в Google sheets

#google-apps-script #google-sheets #spreadsheet #upwork-api

#google-apps-script #google-sheets #электронная таблица #upwork-api

Вопрос:

Я пытаюсь перенаправить URL на функцию в Google-sheets, где эта функция должна выполнить некоторую работу позже.

Итак, насколько я понимаю, я должен создать API для этой функции, используя Deploy as wep app, а затем использовать этот URL.

Итак, что я сделал, это создал 2 файла сценариев Api.gs , содержащих этот код

 function test() {
  Logger.log('Success!!')
}
  

и это должен быть тот, для которого я создам api.

другой файл Authentication.gs содержит этот код функции

 showSideBar() {
    var authorizationUrl = 'https://www.upwork.com/ab/account-security/oauth2/authorize?redirect_uri=The_Api_URL_generated_for_the_function_aboveamp;client_id=clientIDamp;response_type=token';
    var template = HtmlService.createTemplate(
        '<a href="<?= authorizationUrl ?>" target="_blank">Press here to authroze</a>.');
    template.authorizationUrl = authorizationUrl;
    var page = template.evaluate().setTitle('Authroize');
    SpreadsheetApp.getUi().showSidebar(page); 
}
  

Это показывает боковую панель, когда я нажимаю на ссылку, она перенаправляет меня правильно, но с ошибкой, Missing or invalid redirect_uri parameter value .

Я пытаюсь аутентифицировать upwork и снова перенаправить его в Google-sheets

Итак, мне было интересно, что я делаю не так? или, если я делаю, это вообще возможно?

Комментарии:

1. Не могли бы вы уточнить, каким должен быть ваш конечный результат? Честно говоря, я бы с удовольствием помог вам, основываясь только на вашем псевдониме (половина моих переменных называется DOOM).

2. Моим конечным результатом должна быть ссылка на боковой панели (которую выполняет приведенный выше код), при нажатии на эту ссылку она авторизует мою учетную запись в upwork и перенаправляет меня обратно в Google spreadsheets на какую-то функцию или что-то еще, чтобы использовать токен доступа для доступа к данным внутри upwork, если моего разъяснения недостаточно, скажите мне, пожалуйста: D

3. Если вы хотите запустить тест с боковой панели, все, что вам нужно сделать, это вызвать google.script.run.test() из функции js или из какого-либо события

4. Вы также можете запустить функцию в одном проекте из другого проекта, используя Appscript API

5. @Cooper , но вы таким образом отменили аутентификацию, которую я пытаюсь выполнить!! как вы можете видеть, я пытаюсь аутентифицировать пользователя в upwork в приведенном выше коде, но у меня возникла проблема с redirect_uri. (Я хочу, чтобы после нажатия ссылки авторизации и авторизации меня снова перенаправили в Google sheets или к функции, которая делает что-то в Google sheets, например, печатает hello или что-то еще)

Ответ №1:

Попробуйте это:

Введите это в редактор сценариев и запустите showmysidebar(), затем нажмите кнопку и увидите всплывающее окно, отображаемое в правом нижнем углу.

 function test() {
  SpreadsheetApp.getActive().toast("Success");
}

function showmysidebar() {
  var html='<input type="button" value="test" onclick="google.script.run.test();" />';
  SpreadsheetApp.getUi().showSidebar(HtmlService.createHtmlOutput(html));
}