前提・実現したいこと
Google Apps Scriptについて質問させて頂きます。
Googleドライブに保存したファイルを
ローカルにダウンロードする機能を実装しています。
コード.gs側でGoogleドライブに保存してある
ダウンロードしたいファイル(テキストファイル)のURLを取得し、
ScriptApp.getOAuthToken();を付与してから
UrlFetchApp.fetchでgetBlob()でBlobを取得しました。
ここで取得したBlobを自動でダウンロードするため
HTML側(JavaScript)に渡したいのですが、
HTML側で内容を確認するとNULLになってしまいます。
Blobを渡すことは不可能なのでしょうか?
試したこと
コード.gsからHTMLへURL(文字列)を渡せることは確認していたので、
大丈夫かと思ったのですが・・・
文字列が取得できたコード(コード.gs)
function ProcFileDownload(formObject) { var folderName = 'フォルダ名'; var fileName = 'ファイル名'; //ファイル名からフォルダIDとファイルIDを取得 var folderId = DriveApp.getFoldersByName(folderName).next().getId(); var fileId = DriveApp.getFolderById(folderId).getFilesByName(fileName).next() var url = fileId.getDownloadUrl(); var wkToken = '&access_token=' + ScriptApp.getOAuthToken(); return url + wkToken; }
Blobが取得できないコード(コード.gs)
function ProcFileDownload(formObject) { var folderName = 'フォルダ名'; var fileName = 'ファイル名'; //ファイル名からフォルダIDとファイルIDを取得 var folderId = DriveApp.getFoldersByName(folderName).next().getId(); var fileId = DriveApp.getFolderById(folderId).getFilesByName(fileName).next() var url = fileId.getDownloadUrl(); var wkToken = '&access_token=' + ScriptApp.getOAuthToken(); return UrlFetchApp.fetch(url+wkToken).getBlob(); }
index.html(JavaScript部/共通)
HTML
1<script> 2 function handleFormDownloadSubmit(formObject) { 3 google.script.run.withSuccessHandler(downloadEvent).ProcFileDownload(formObject); 4 } 5 6 function downloadEvent(downloadFile) { 7 alert(downloadFile); //Blobの時はtypeofでObjectと表示されるが内容はNull 8 9 //以降はaタグを生成してclickイベントでダウンロード 10} 11</script>
回答1件
あなたの回答
tips
プレビュー