0

Google ドライブにあるファイルの ID を取得する必要があるシートがあります。次のスクリプトを作成しました。

function get_id_pdf() {
  var nom='INV432-altaïr-Famille XXX-XXX Marie-03-2016.pdf';
  var files = DriveApp.getFilesByName("'"+nom+"'");
  while (files.hasNext()) {
    var file = files.next();
    var name = file.getName();
    var type = file.getMimeType();
    var url = file.getUrl();
    var id = file.getId();
    // Logger.log(file.getId());
    return file.getId();
  }
}

スクリプト エディターで (runボタンを使用して) 実行すると、うまく機能しています (ログの ID を取得します)。=get_id_pdf()しかし、Google シートのセル ( cell: 内) からスクリプトを呼び出すと、次のエラーが表示されます。

getFilesByName を呼び出す権限がありません」 (画像を参照)

もちろん、私はこのファイルにアクセスするためのすべての権限を持っています (ファイルは自分のドライブにあり、ファイルは私が作成したものです)。

誰かがアイデアを持っていますか?

よろしく。

4

1 に答える 1

0

カスタム関数が実行される匿名ユーザーとしてユーザー認証を必要とするサービスを呼び出すことはできません。ユーザーが承認できるように、動作をカスタム メニューまたはサイドバーに配置する必要があります。

認可文書

カスタム関数のドキュメント

カスタム関数が「X サービスを呼び出す権限がありません」というエラー メッセージをスローする場合。、サービスにはユーザー認証が必要なため、カスタム機能では使用できません。

于 2016-05-01T09:39:40.667 に答える