2017-10-10 21 views
2

221/5000Googleのアプリスクリプト、チームドライブのGoogleピッカー

こんにちは!現時点では、私はGoogleのチームドライブのためのGoogleのpikkerを実装しようとしている。このコードは、私のGoogleドライブに適していますが、あなたは、Googleのチーム・ドライブのためのこのコードを使用する場合、ファイルの表示ウィンドウでパラメータ

.enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES)

.setSelectFolderEnabled(true)

を追加することは空です。

どうすれば修正できますか? ありがとうございました!

enter image description here

それはすべきだ、それのようになります。

enter image description here

私はOAuth 2.0のに問題があることを考えます。

チームドライブhttps://developers.google.com/drive/v3/web/pickerためのピッカーについての良い記事がありますが、このパラメータが使用していない:

.enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES)

.setSelectFolderEnabled(true)

Picker.html

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons.css"> 
    <script type="text/javascript"> 
    var DIALOG_DIMENSIONS = { 
     width: 600, 
     height: 425 
    }; 

    var pickerApiLoaded = false; 

    function onApiLoad() { 
     gapi.load('picker', { 
      'callback': function() { 
       pickerApiLoaded = true; 
      } 
     }); 
     google.script.run.withSuccessHandler(createPicker) 
      .withFailureHandler(showError).getOAuthToken(); 
    } 

    function createPicker(token) { 

     if (pickerApiLoaded && token) { 

      var docsView = new google.picker.DocsView() 
       .setIncludeFolders(true) 
       .setMimeTypes('application/vnd.google-apps.folder') 
       .setSelectFolderEnabled(true) 
       .setEnableTeamDrives(true); 

      var picker = new google.picker.PickerBuilder() 
       .addView(docsView) 
       .enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES) 
       .enableFeature(google.picker.Feature.NAV_HIDDEN) 
       .hideTitleBar() 
       .setSize(DIALOG_DIMENSIONS.width - 2, DIALOG_DIMENSIONS.height - 2) 
       .setOAuthToken(token) 
       .setCallback(pickerCallback) 
       .setOrigin('https://docs.google.com') 
       .build(); 

      picker.setVisible(true); 

     } else { 
      showError('Unable to load the file picker.'); 
     } 
    } 

    /** 
    * A callback function that extracts the chosen document's metadata from the 
    * response object. For details on the response object, see 
    * https://developers.google.com/picker/docs/result 
    * 
    * @param {object} data The response object. 
    */ 
    function pickerCallback(data) { 
     var action = data[google.picker.Response.ACTION]; 
     if (action == google.picker.Action.PICKED) { 
      var doc = data[google.picker.Response.DOCUMENTS][0]; 
      var id = doc[google.picker.Document.ID]; 
      // Show the ID of the Google Drive folder 
      document.getElementById('result').innerHTML = id; 
      /**/ 

      google.script.run.searchFileInFoder(id); 
      google.script.host.close(); 
      /**/ 
     } else if (action == google.picker.Action.CANCEL) { 
      google.script.host.close(); 
     } 
    } 

    function showError(message) { 
     document.getElementById('result').innerHTML = 'Error: ' + message; 
    } 
    </script> 
</head> 

<body> 
    <div> 
     <p id='result'></p> 
    </div> 
    <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script> 
</body> 
</html> 

コード。 gs

あなたはこのようなDocsViewのカッコ内 google.picker.viewId.DOCSを含めるよう
+0

こんにちは! Stack overflowで将来の努力のために[質問形式を質問する](http://stackoverflow.com/help/how-to-ask)をチェックする方が良いでしょう。 - ありがとうございました – Momin

+0

エラーが発生した場合はログを確認しましたか? –

+0

私はこれをどうやってできるのか教えてくれませんでしたか? – Aharon

答えて

1
は、次のように定義するためにあなたのdocsView変数を変更

let docsView = new google.picker.DocsView(google.picker.ViewId.DOCS) 
         .setEnableTeamDrives(true); 

私は上記の問題のコードを実装しようとしたと私はいくつかのコンソールエラーが発生したとピッカーが正しく機能しませんでした。おそらくそれは.setOriginパラメータと関係があります。あなたのコンソールログを知らないので、あなたのコードのどの部分がエラーを引き起こしているのかは分かりません。しかし、とにかく私のために働く私の完全なcreatePicker()関数は以下の通りです:

function createPicker() { 
    if (pickerApiLoaded && oauthToken) { 
     var view = new google.picker.DocsView(google.picker.ViewId.FOLDERS) 
         .setSelectFolderEnabled(true); 
     var picker = new google.picker.PickerBuilder() 
      .enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES) 
      .addView(new google.picker.DocsView(google.picker.ViewId.DOCS) 
         .setEnableTeamDrives(true)) 
      .addView(google.picker.ViewId.DOCS) 
      .addView(view) 
      .setOAuthToken(oauthToken) 
      .setDeveloperKey(developerKey) 
      .setCallback(pickerCallback) 
      .build(); 
     picker.setVisible(true); 
    } 
    } 
+0

これは私には役に立たなかった。オプションを有効にするGoogleチームドライブを適用すると、空白のポップアップウィンドウも表示されます。 – timk

+0

所有しているコンソールエラーログは何ですか? – Abba

+0

@timk:私は私のためにうまく動作するcreatePicker()関数内で使用したコードで私の答えを編集しました。 – Abba

関連する問題