マイコードは、ユーザーが送信したGoogleフォームデータを処理してGoogle Docにインポートし、Googleシート機能で決定されたユーザーとファイルを共有し、ユーザー。通知メールなしのアドバンストドライブサービスによるaddEditors()
ユーザのグループは、のように1つの値(セルのリスト - [email protected], [email protected], etc.
)から開始し、split(", ")
です。addEditors()
で使用するための配列です。
DriveApp File.addEditors()
メソッドを使用しているときに、その操作に関連付けられた電子メール通知を送信しないで、これらのユーザーの編集権限を設定する必要があります。私が理解しているように、これにはAdvanced Drive Serviceが必要です。私はすでにenabledのスクリプトを持っています。
通知なしでこれらのアクセス許可を追加するための構文と正確なコードは何ですか?
以下の私のコードのサンプル -
function mergeApplication() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Merge Data");
var range = sheet.getActiveRange();
var formSheet = ss.getSheetByName("Form Responses");
var lastRow = formSheet.getLastRow();
var lastColumn = sheet.getMaxColumns();
function checkAndComplete() {
var urlColumn = lastColumn;
var checkColumn = (urlColumn - 1);
var checkRange = sheet.getRange(2, checkColumn, (lastRow - 1), 1);
var check = checkRange.getBackgrounds();
var red = "#ff0404";
var yellow = "#ffec0a";
var green = "#3bec3b";
for (var i = 0; i < check.length; i++) {
if (check[i] == green) {
continue;
} else {
var statusCell = sheet.getRange((i+2), checkColumn, 1, 1);
var urlCell = sheet.getRange((i+2), urlColumn, 1, 1);
var dataRow = sheet.getRange((i+2), 1, 1, (lastColumn - 2));
var emailTag = sheet.getRange((i+2), (checkColumn - 2)).getValue();
var emailEditors = emailTag.split(", ");
...それが使用される場所にマージコードを下スキップ...
var docCopy = docToUse.makeCopy(docName, folderDestination);
var docId = docCopy.getId();
var docToSend = DriveApp.getFileById(docId);
docToSend.addEditors(emailEditors);
このコードが割り当て権限以外の何かをしていますか?テストの実行中に、Googleドキュメントのコピーが2つ作成されました。助言がありますか? – MasterCrander
私のテストは自分のコードで行われていましたが、明らかに実行可能なバージョンがありませんでしたが、これは不完全でした。しかし、 'makeCopy()'への複数の呼び出しを探します。 – Mogsdad
ありがとう、私はいくつかの 'console.log()'テストを行います。権限リストに電子メールグループを追加すると、そのグループのすべてのメンバーが追加されますか? – MasterCrander