3

Google のチュートリアル ページから以下を使用して画像を読み込むと、正常に動作します。

// 最初の Google Doodle! app.add(app.createImage("http://www.google.com/logos/googleburn.jpg"));

しかし、自分の Google ドキュメントから URL を取得しようとすると、画像の読み込みに失敗します:

var image;
var url;    
var files = DocsList.getAllFiles();        
for (var i = 0; i < files.length; i++) {  
    url = files[i].getUrl();  
    app.add(app.createImage(image));  
    app.add(app.createLabel(url));  
}

返される URL は画像に直接ではなく、何らかの Google ドキュメント コンテナです。

http://docs.google.com/a/--------.com/open?id=0B5B_X4WaXYC7cExRT3Nvb0hTamc

4

5 に答える 5

5

ここに受け入れられた答えがあることは知っていますが、UiApp の廃止以来、それはもはや正確ではありません。以下は、特定の Google ドライブ ディレクトリを読み取り、公開されているすべての画像を最新の App Script API を使用してアセット オブジェクトを介してテンプレートに渡すスクリプトです。

function getAssets(driveDir) {
    var folders = DriveApp.getFoldersByName(driveDir);
    var folder = (folders.hasNext())? folders.next() : false ;
    var assets = {};
    if(folder){
        var files = folder.getFiles();
        while (files.hasNext()) {
            var file = files.next();
            var fileName = file.getName();
            assets[fileName] = 'https://drive.google.com/uc?export=view&id=' + file.getId();
        }
    }
    return assets;
}

doGet() 関数にはアセットを含める必要があります

function doGet(e) {
    var form = HtmlService.createTemplateFromFile('form.html');
    form.assets = getAssets('Your-drive-folder-name');

    return form.evaluate();

}

最後に、HTML テンプレートで、次のコードを介してアセットにアクセスできます。

 <img src="<?= assets.fileName ?>" />

繰り返しになりますが、Google サイト/アプリ スクリプトなどで画像を許可するには、アセットが公開されている必要があります。File.setSharing API メソッドを使用して getAssets() を介して設定できますが、アップロード時にアクセス許可を設定することはそれほど面倒ではないことがわかりました。

于 2014-12-12T18:11:12.000 に答える
2

はい、Google ドキュメントに保存されている画像は使用できません。画像 URL は、その画像へのホットリンク (直接リンク) である必要があります。

app.createImage('YOUR_IMAGE_HOT_LINK_URL');
于 2012-06-19T09:01:14.913 に答える
1

サイトやドキュメントなどのGoogleサービスからでも、認証されたURLからUiAppに画像を表示することはできません。 問題#912はこれを文書化しています。

于 2012-06-19T18:11:47.547 に答える
0

画像を添付ファイルとして Google サイト ページに保存し、Google Apps Script の Sites API を使用してアクセスできます。

于 2012-06-19T11:12:00.867 に答える
0

Actually you can do this but I fear it is not very reliable. When you click the download button in the viewing container, that link will work. However, you have to have the image publicly available. Or share it to all users who will be able to view the Sheet or Doc.

于 2014-10-13T01:17:10.367 に答える