0

ドキュメント リストのダイアログがあります。これまでのコードは次のとおりです。ただし、 DocListDialogueから実際の選択を取得するにはどうすればよいですか? eventInfo.parameter を試してみましたが、それは汎用オブジェクトのみを返し、ファイルを返す必要があります。これが私のコードです:

function init() {
   var app = UiApp.createApplication().setTitle("WriteWell");
   var selectionHandler = app.createServerHandler("selectHandler");
   app.createDocsListDialog().showDocsPicker().setDialogTitle("Select File to Open").addSelectionHandler(selectionHandler);
   app.add(app.createVerticalPanel().setId("Panel"));
   return app;
 }

 function doGet(e) {
   return init();
 }

function selectHandler(eventInfo){
  var parameter = eventInfo.parameter;//Selection???
  var app = UiApp.getActiveApplication();
  var panel = app.getElementById("Panel");
  panel.add(app.createLabel(parameter.getId()));//Returns an error
}
4

2 に答える 2

1

の内容eventInfo.parameterを調べると、次のようなものが返されることがわかります。

{
    source=u01234567890,
    items=[
      {
        id=0Abcd-efgH_ijKLLLmnOPQr0stuvwX,
        name=file_name,
        url=https://docs.google.com/file/d/0Abcd-efgH_ijKLLLmnOPQr0stuvwX/edit?usp=drive_web
      }
    ],
    u01234567890=[
      {
        id=0Abcd-efgH_ijKLLLmnOPQr0stuvwX,
        name=file_name,
        url=https://docs.google.com/file/d/0Abcd-efgH_ijKLLLmnOPQr0stuvwX/edit?usp=drive_web
      }
    ],
    eventType=selection
}

選択したファイルの ID が必要な場合は、次のようなものが必要です。

...
eventInfo.parameter.items[0].id;
...
于 2013-10-13T19:41:14.717 に答える
0

eventInfo の内容を確認したい場合は、使用できます

Logger.log(Utilities.jsonStringify(eventInfo));

この場合、次のようなものが返されます。

[13-10-13 21:25:21:722 CEST] {"parameter":{"source":"u16052058908","items":[{"id":"0AnZ5_ShBzI6pdHd4SWo0bUJYOEp4VFE4cDI1SUFvZFE","name":"Tracker locaux","url":"https://docs.google.com/a/insas.be/spreadsheet/ccc?key\u003d0AnZ5_ShBzI6pdHd4SWo0bUJYOEp4VFE4cDI1SUFvZFE\u0026usp\u003ddrive_web"}],"eventType":"selection","u16052058908":[{"id":"0AnZ5_ShBzI6pdHd4SWo0bUJYOEp4VFE4cDI1SUFvZFE","name":"Tracker locaux","url":"https://docs.google.com/a/insas.be/spreadsheet/ccc?key\u003d0AnZ5_ShBzI6pdHd4SWo0bUJYOEp4VFE4cDI1SUFvZFE\u0026usp\u003ddrive_web"}]}}

それを見ると、(たとえば) を使用して必要なオブジェクト プロパティを取得できることがわかります。

var docsInfo = eventInfo.parameter.items;

ファイル名、ID、および URL を含むオブジェクトの配列 (選択したファイルごとに 1 つ) を返します。

このオブジェクト配列を繰り返し処理して、各アイテムから必要なものを取得してください。

于 2013-10-13T19:36:09.257 に答える