This App is blocked | App Script 問題|解決方法

更新日期: 2022 年 12 月 30 日

問題描述

如題,我原本有在試算表中,寫一個簡單的「時間戳記」程式碼。

當使用者在平台、提案人員、需求說明其中三個欄位新增內容時,就會在提案日期新增一個當下的時間點。

適用試算表

該程式碼函數如下:

function onEdit(e) {
  let row = e.range.getRow();
  let col = e.range.getColumn();
  if ((col == 3 || col == 4 || col == 5) && e.source.getActiveSheet().getName() === '需求') {
    e.source.getActiveSheet().getRange(row, 2).setValue(new Date());
  }
}

後來我想要將功能調整成,只要往上新增一列,就自動在「提案日期」欄位新增當下時間。

因此將程式碼改成以下內容:

function onChange(e) {
  let row = e.range.getRow();
  if(e.changeType == 'INSERT_ROW' && e.source.getActiveSheet().getName() === '需求') {
    e.source.getActiveSheet().getRange(row, 2).setValue(new Date());
  }
}

但最後改完沒有任何反應,也不知道是哪裡出問題。

經過一番測試後,發現要再授權一次才可以正常使用。

正當我要想要授權時,卻發現系統跳出這個畫面:「This app is blocked」。

後來上網爬文後,才發現某一位網友提供了一個解決方法

問題原因

我們可以從 Google 的官方文件中得知,如果你希望能順利執行 Apps Script 的代碼。

每個 Apps Script 專案都使用 Google Cloud 來管理授權、進階服務和其他詳細資料。

你必須要創建 Google Cloud 專案,才能避免發生以上錯誤。

題外話:什麼是 Google Cloud Platform?

解決辦法

需要時間: 1 小時

具體來說,我們可以將實際操作過程拆解成以下流程,用以改善此問題:

  1. 創建一個 Google Clound Project

    跟著官方指南,在 Google Clound Project 創建一個專案,用以後續設定隱私權使用。

  2. 將隱私權設定為測試者

    在隱私權設定的區塊,將自己的 gmail 帳號,設定成「測試員」。

  3. 將專案 ID 與 App Script 連接

    找到已創建的專案 ID,與 App Script 的設定串接再一起。

創建專案

我們可以參考官方操作指南,跟著創建一個新的專案。

首先,我們前往 Google Clound 的網頁畫面

點擊右上角的「控制台」,進入控制台的畫面。

進入控制台後,在左上角 logo 旁邊的位置,點擊專案的名稱,並創立一個新專案。

點擊「建立新專案」。

幫自己的專案名稱命名,並點選「創建」的藍色按鈕,即可順利建立成功。

調整隱私權

當創建完專案後,就要開始調整隱私權設定。

首先點選畫面左上方的選單按鍵,再點擊 APIs & Services -> OAuth consent screen。

接著在 User Type 區塊選擇「External」並創建。

接著在個人資訊區塊,將必填的三個欄位填寫完成即可。

  • 專案名稱(自己隨便填)
  • 使用者電子郵件(填自己的 Gmail)
  • 開發者聯絡資訊(填自己的 Gmail)

填寫完個人資訊後,下一步不用理他,直接點選「儲存並繼續創建」。

最後,到了最重要的一步。

點擊增加使用者,並將自己的 gmail 帳號加入其中,即可順利完成隱私權設定。

連結ID

當你完成隱私權設定後,就需要將 Google cloud 專案與 Apps Script 專案連接再一起。

點選左上角選單按鈕,點擊 Cloud overviw -> Dashboard。

到儀錶板後,將專案號碼複製起來。

回到 Apps Script 的畫面,點擊左下角的設定按鈕。

將畫面往下拉並找到 Google Cloud Platform 的區塊,點擊改變專案。

點擊後,將剛剛複製的專案號碼貼上,並點擊設定專案,即可順利完成。

當你完成以上步驟,即可以順利解決授權問題。

如果設定時還有問題,可以到 FB 社團繼續發問歐~

Similar Posts