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 小時
具體來說,我們可以將實際操作過程拆解成以下流程,用以改善此問題:
- 創建一個 Google Clound Project
跟著官方指南,在 Google Clound Project 創建一個專案,用以後續設定隱私權使用。
- 將隱私權設定為測試者
在隱私權設定的區塊,將自己的 gmail 帳號,設定成「測試員」。
- 將專案 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 社團繼續發問歐~