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

質問編集履歴

2

追加の検証結果を追記

2020/05/04 23:29

投稿

draq
draq

スコア2577

title CHANGED
File without changes
body CHANGED
@@ -77,4 +77,18 @@
77
77
  https://drive.google.com/uc?export=view&id=(画像のファイルID)&usp=sharing
78
78
  に変えてみましたが結果は変わらず。
79
79
 
80
- - [Qiita で該当しそうな記事](https://qiita.com/TechnoKuRo/items/622c3dcc2ff3f7e09474)を見つけたので、ここで見つけたことを試してみましたが変わりませんでした。
80
+ - [Qiita で該当しそうな記事](https://qiita.com/TechnoKuRo/items/622c3dcc2ff3f7e09474)を見つけたので、ここで見つけたことを試してみましたが変わりませんでした。
81
+
82
+ ---
83
+ [2020-05-05 追記]
84
+ ```HTML
85
+ <!DOCTYPE html>
86
+ <html>
87
+ <body>
88
+ <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)">
89
+ <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)&usp=sharing">
90
+ </body>
91
+ </html>
92
+ ```
93
+ これだけのHTMLファイルをPCローカルで作成し、各ブラウザで開いて見ましたが、ChromeとChromium版Edgeだけでリンク切れになるようです。
94
+ どうもこの結果から GAS とは関係なく、Windows 版の Chrome 系と Google Drive の問題なのかもしれません。

1

ブラウザのアカウントについてと、ダウンロードURLを動的に生成する動作確認についても追記

2020/05/04 23:29

投稿

draq
draq

スコア2577

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Google Apps Script で作成した Web アプリケーションに、Google Drive 上の画像ファイルを Google Chrome で表示したい。
4
4
 
5
- Google Apps Script、Google Drive ともに同一の Google アカウントでログインしています。
5
+ Google Apps Script、Google Drive、Google Chrome は同一の Google アカウントでログインしています。
6
+ (Google Chrome は同期の設定もこのアカウントで行っています。)
6
7
  Google アカウントは G Suite ではない通常の @gmail.com ドメインです。
7
8
  Windows 10 で動かしているブラウザでの話です。
8
9
 
@@ -11,7 +12,7 @@
11
12
 
12
13
  ### 発生している問題・エラーメッセージ
13
14
 
14
- PC(Chrome、Chromium版Edge)とiPhone(Safari)では画像が表示されずリンク切れとなりますが、PC(Firefox、旧版Edge)では画像が表示されます。
15
+ PC(Chrome、Chromium版Edge)とiPhone(Safari)ではソースの4パターンすべてが画像が表示されずリンク切れとなりますが、PC(Firefox、旧版Edge)では画像が表示されます。
15
16
  Androidは環境が無いので未確認です。
16
17
 
17
18
  ### 該当のソースコード
@@ -36,6 +37,16 @@
36
37
  function doGet() {
37
38
  return HtmlService.createTemplateFromFile("index").evaluate();
38
39
  }
40
+
41
+ function getFileUrl(id){
42
+ var url = DriveApp.getFileById(id).getDownloadUrl();
43
+ return url;
44
+ }
45
+
46
+ function getFileUrl2(id){
47
+ var url = DriveApp.getFileById(id).getDownloadUrl();
48
+ return url + '&access_token=' + ScriptApp.getOAuthToken();
49
+ }
39
50
  ```
40
51
  - index.html
41
52
  ```HTML
@@ -45,10 +56,21 @@
45
56
  <base target="_top">
46
57
  </head>
47
58
  <body>
59
+ <p>通常?</p>
48
- <img src="https://drive.google.com/uc?export=view&id=(画像ファイルID)" />
60
+ <img src="https://drive.google.com/uc?export=view&id=(画像ファイルID)">
61
+ <hr>
62
+ <p>usb=sharing付き</p>
63
+ <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)&usp=sharing">
64
+ <hr>
65
+ <p>ダウンロードURLをIDから動的に取得(アクセストークンなし)</p>
66
+ <img src="<?=getFileUrl("(画像ファイルのID)")?>">
67
+ <hr>
68
+ <p>ダウンロードURLをIDから動的に取得(アクセストークンあり)</p>
69
+ <img src="<?=getFileUrl2("(画像ファイルのID)")?>">
49
70
  </body>
50
71
  </html>
51
72
  ```
73
+
52
74
  ### 試したこと
53
75
 
54
76
  - 画像の URL を