0

HTMLサービスを使用するGoogleアプリスクリプトに取り組んでいます。Google ドライブからファイルを選択できるように、ユーザーにファイル チューザーを提供したいと考えています。

これを行うと思われる 2 つの異なる API、Google PickerGoogle DocsListDialogを見てきました。

どちらも機能させることができません。サンプル コードを両方のドキュメント ページからそのままコピーしましたが、ピッカーが表示されません。

Google ピッカー HTML ページで JavaScript から呼び出してみました。ドキュメント ページから Hello World の例をコピーしました。何も表示されませんでした。

次に、スクリプト自体で DocsListDialog を試しました (google.script を使用して html のボタンを押すと呼び出されます)。今回も何も表示されませんでしたが、コード例ではピッカーを doGet 関数に返しますが、これもそれを返します。私はhtmlサービスを使用しているので、私のdoGetはhtmlを返します。

とにかくシンプルなドキュメントピッカーをアプリに統合したいだけです。カット アンド ペーストしてから変更できるサンプル コードは、おそらくそこから理解できるので、非常に役立ちます。

ありがとう。


誰かが別のアプローチの提案を持っているかもしれないので、私がやろうとしていることを説明するのに役立つかもしれません.

私は学校の教師であり、アマチュアのプログラマーです。学校ではGoogleサイトとGoogleドライブを使用しています。教師がテンプレート ファイルをコピーしてクラス全体と自動的に共有できるように、内部サイト ページにアプリを作成したいと考えています。

これを行う方法を知っている唯一の方法は、html サービスを使用する Google Apps スクリプトを作成することです。次に、html と JavaScript を組み合わせて使いやすいフォームを作成し、教師から情報を取得します。スクリプトでファイルを取得、コピー、ビューアーやエディターを追加する方法などを知っています。

現在、教師にファイルを識別させる方法を私が知っている唯一の方法は、ファイル ID を入力することです。私の学校の教師の多くはコンピューターにあまり精通していません。Web アドレスから ID を特定してコピーする方法を説明するのは簡単ではないため、この部分を簡単にしたいと思います。

Google doc picker への参照をいくつか見ましたが、必要なもので動作させる方法 (または必要なものを達成するための他の簡単な方法) があれば、これは良い方法のように思えました。

役立つ提案があれば大歓迎です。

4

2 に答える 2

2

実際に HTML サービスで動作させることができます。方法は次のとおりです...

新しいアプリ スクリプト プロジェクトを作成し、プロジェクト内に次のファイルを作成します。

Code.gs ファイル:

function doGet() {
return HtmlService.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
.setTitle('Picker');
}

index.html ファイル:

<script type="text/javascript">
// Use the Google Loader script to load the google.picker script.
google.setOnLoadCallback(createPicker);
google.load('picker', '1');
// picker info here
function createPicker() {
// Create default view to folders
var view = new google.picker.View(google.picker.ViewId.FOLDERS);
// Use DocsUploadView to upload documents to Google Drive.
var uploadView = new google.picker.DocsUploadView();
var picker = new google.picker.PickerBuilder().
addView(view).
addView(uploadView).
setAppId('YOUR APP ID').
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
// callback implementation.
function pickerCallback(data) {
    if (data.action == google.picker.Action.PICKED) {
        var fileId = data.docs[0].id;
        alert('The user selected: ' + fileId);
    }
}
</script>
  1. プロジェクトを保存して公開し、実行します。

  2. pickerCallback(data) 関数にアプリ スクリプト サブルーチンを含めます。

    出典: Google Apps デベロッパーのブログ投稿

于 2014-05-22T02:30:05.747 に答える
0

DocsListDialog は明らかに uiservices の一部であり、html サービスではありません。なぜそこで機能すると期待するのですか?また、filepicker は caja に準拠していないライブラリを使用します。htmlservice と caja に関するドキュメントを読んでください。


編集: 新しい aps スクリプト iframe モードでは、通常のファイルピッカー ライブラリを使用できるはずです。

于 2013-05-04T17:37:45.937 に答える