teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

全体の文章の構成を修正。 コードを分かりやすくするため、コメントを追記。

2020/12/13 02:10

投稿

GooS
GooS

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ここに質問の内容を詳しく書いてください。
4
- スプレッドシートリンク共有を手動でするのが面倒なのでGASで自動化しようと思い、下記のURLを参考にコードを組みました。
3
+ 複数のスプレッドシートリンク共有を手動でするのが面倒なのでGASで自動化しようと思い、下記のURLを参考にコードを組みました。
5
4
  https://auto-worker.com/blog/?p=447#toc_id_3
6
5
  (上記の記事製作者に感謝します。)
7
6
 
@@ -17,6 +16,10 @@
17
16
  ### 該当のソースコード
18
17
 
19
18
  ```ここに言語名を入力
19
+ /**
20
+ *シートに記載されているスプレッドシートのURLを取得して
21
+ *replace()でID部分以外を削除し、キーIDだけ抜き出し配列に格納するメソッド。
22
+ */
20
23
  function getId() {
21
24
  const sh = SpreadsheetApp.getActiveSheet();
22
25
  const getByUrl = sh.getRange(3,10,sh.getLastRow(),1).getValues();
@@ -30,14 +33,13 @@
30
33
  .replace("/edit?ouid=[プライベート情報]",'')
31
34
  .replace("/edit#gid=0",'');
32
35
  getByIdArray.push([getById]);
33
-
34
36
  }
35
- return getByIdArray;
37
+ return getByIdArray; //スプレッドシートのキーIDを取り出し、配列に格納する。
36
38
  }
37
39
 
38
40
  function accessFree(){
39
41
  const getByIdArray = getId();
40
- console.log(getByIdArray); //エラー確認
42
+ console.log(getByIdArray); //エラー確認 1次配列で表示されるか確認。
41
43
  let access;
42
44
  let permission;
43
45
 
@@ -61,13 +63,15 @@
61
63
  を削除したところ問題なく動きましたので、おそらくこの部分のエラーなのだと思っています。
62
64
  しかし自分の知識不足か何故「Access denied」というエラーが発生するのか理解できませんでした。
63
65
  「Access denied GAS」で検索して色々な記事を読みましたが、残念ながら解決できませんでした。
66
+ accessに代入した構文もpermissionに代入した構文も間違っていないと思うのですが、、、
64
67
 
65
- 下記の記事を参考にしましたが、実行許可がでないままgetName出来てしいました。
68
+ 下記の記事を参考にしましたが、実行許可がでないままメソッドが動きました。
66
69
  https://nac-chib.com/blog/how-to-fix-oauth-error-gas-and-bigquery/#GASBigQueryAccess_Denied_BigQuery_BigQuery_No_OAuth_token_with_Google_Drive_scope_was_found
70
+ (上記の記事内容を簡単に説明すると、DriveAppのAPIを呼び出すための許可ができていなかったので、その許可が出るような簡単なメソッドを構築し実行して許可をすることで解決したという記事内容です。)
67
71
 
68
72
  是非ご教授のほどよろしくお願いいたします。
69
73
 
70
74
  ### 補足情報(FW/ツールのバージョンなど)
71
75
  V8ランタイム有効です。
72
76
  先日リリースされた新しいほうのIDEを使って編集しております。
73
- 社で利用するものになります。手動でリンク共有をしようとと、社内ユーザー限定でリンク共有になるようなっています。
77
+ で利用するものになります。 べてに公開いう項目が無く、社内ユーザー限定でリンク共有されるようなビジネスアカウントで使っています。

2

誤字の修正

2020/12/13 02:10

投稿

GooS
GooS

スコア5

title CHANGED
File without changes
body CHANGED
@@ -54,7 +54,7 @@
54
54
  ### 試したこと
55
55
  配列の取得がうまくいっていないのかと思い、配列取得のログを確認しましたが問題なく取得されていました。
56
56
  要素の取り出しも問題ありませんでした。
57
- 試しに31行目の
57
+ 試しに30行目の
58
58
 
59
59
  .setSharing(access, permission);
60
60
 

1

コードの一部が抜けていたので補足しました。

2020/12/11 02:08

投稿

GooS
GooS

スコア5

title CHANGED
File without changes
body CHANGED
@@ -38,7 +38,6 @@
38
38
  function accessFree(){
39
39
  const getByIdArray = getId();
40
40
  console.log(getByIdArray); //エラー確認
41
- const document = DriveApp;
42
41
  let access;
43
42
  let permission;
44
43
 
@@ -47,7 +46,7 @@
47
46
 
48
47
  for(let i = 0;i < getByIdArray.length;i++){
49
48
  console.log(getByIdArray[i]); //エラー確認
50
- document.getFileById(getByIdArray[i]).setSharing(access, permission);
49
+ DriveApp.getFileById(getByIdArray[i]).setSharing(access, permission);
51
50
  }
52
51
  }
53
52
  ```