前提・実現したいこと
GASでスプレッドシートの自作関数(GetFileId)を作成中です。
機能は「フォルダID」と「ファイル名」を引数で渡し
「ファイル名」と一致するファイルの「ファイルID」を返します。
スプレッドシートのセル(A1)に「=GetFileId("******","××××××××")」
と自作関数の呼び出しを記述するとエラーメッセージが発生しました。
******はフォルダID、××××××××はファイル名です。
発生している問題・エラーメッセージ
DriveApp.getFolderById を呼び出す権限がありません。必要な権限: (https://www.googleapis.com/auth/drive.readonly || https://www.googleapis.com/auth/drive)(行 4)が発生しました。
該当のソースコード
【ファイルID取得.gs】
function GetFileID(targetFolderID,targetFileName) {
//フォルダIDからフォルダオブジェクトを取得
var targetFolder = DriveApp.getFolderById(targetFolderID);
//フォルダ内のファイル一覧を取得
var filesList = targetFolder.getFiles();
//ファイルID
var targetFileID = ""
//ファイルが存在する間、ループする
while(filesList.hasNext()){
var file = filesList.next() //ファイルを取得 var fileName = file.getName(); //ファイル名を取得 //ファイル名が一致した場合、ファイルIDを取得 if (targetFileName == fileName){ targetFileID = file.getId() }
}
return targetFileID;
試したこと
https://qiita.com/hisayuki/items/725110707d8abc8796d8
に記載されている情報をもとにマニフェストファイルを以下の通りに変更しました。
【マニフェストファイルの内容】
{
"timeZone": "Asia/Tokyo",
"oauthScopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/spreadsheets"],
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}
補足情報(FW/ツールのバージョンなど)
ファイルID取得.gsからGetFileIDを直接実行すると上手く動作するんですが、
スプレッドシートからGetFileIDを呼び出すとエラーがでます。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/15 05:47
2019/08/16 01:02