前提・実現したいこと
Google Apps Script で作成した Web アプリケーションに、Google Drive 上の画像ファイルを Google Chrome で表示したい。
Google Apps Script、Google Drive、Google Chrome は同一の Google アカウントでログインしています。
(Google Chrome は同期の設定もこのアカウントで行っています。)
Google アカウントは G Suite ではない通常の @gmail.com ドメインです。
Windows 10 で動かしているブラウザでの話です。
また画像ファイルの共有設定は「非公開 - 自分だけがアクセスできます」となっています。
共有設定を「オン」にすれば、PC(Chrome、Chromium版Edge)でも画像が表示されますが、自分しか利用しないため不要な共有はしたくありません。
発生している問題・エラーメッセージ
PC(Chrome、Chromium版Edge)とiPhone(Safari)ではソースの4パターンすべてが画像が表示されずリンク切れとなりますが、PC(Firefox、旧版Edge)では画像が表示されます。
Androidは環境が無いので未確認です。
該当のソースコード
- appsscript.json
JSON
1{ 2 "timeZone": "Asia/Tokyo", 3 "dependencies": { 4 }, 5 "webapp": { 6 "access": "MYSELF", 7 "executeAs": "USER_DEPLOYING" 8 }, 9 "exceptionLogging": "STACKDRIVER", 10 "runtimeVersion": "V8" 11}
- Code.gs
JavaScript
1function doGet() { 2 return HtmlService.createTemplateFromFile("index").evaluate(); 3} 4 5function getFileUrl(id){ 6 var url = DriveApp.getFileById(id).getDownloadUrl(); 7 return url; 8} 9 10function getFileUrl2(id){ 11 var url = DriveApp.getFileById(id).getDownloadUrl(); 12 return url + '&access_token=' + ScriptApp.getOAuthToken(); 13}
- index.html
HTML
1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 </head> 6 <body> 7 <p>通常?</p> 8 <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)"> 9 <hr> 10 <p>usb=sharing付き</p> 11 <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)&usp=sharing"> 12 <hr> 13 <p>ダウンロードURLをIDから動的に取得(アクセストークンなし)</p> 14 <img src="<?=getFileUrl("(画像ファイルのID)")?>"> 15 <hr> 16 <p>ダウンロードURLをIDから動的に取得(アクセストークンあり)</p> 17 <img src="<?=getFileUrl2("(画像ファイルのID)")?>"> 18 </body> 19</html>
試したこと
- 画像の URL を
https://drive.google.com/uc?export=view&id=(画像のファイルID)&usp=sharing
に変えてみましたが結果は変わらず。
- Qiita で該当しそうな記事を見つけたので、ここで見つけたことを試してみましたが変わりませんでした。
[2020-05-05 追記]
HTML
1<!DOCTYPE html> 2<html> 3 <body> 4 <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)"> 5 <img src="https://drive.google.com/uc?export=view&id=(画像ファイルのID)&usp=sharing"> 6 </body> 7</html>
これだけのHTMLファイルをPCローカルで作成し、各ブラウザで開いて見ましたが、ChromeとChromium版Edgeだけでリンク切れになるようです。
どうもこの結果から GAS とは関係なく、Windows 版の Chrome 系と Google Drive の問題なのかもしれません。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 01:55