ruby-on-rails - 让谷歌文件选择器与 drive.file 范围一起工作

标签 ruby-on-rails ruby google-drive-api

我正在尝试使用 Google 文件选择器来选择文档,然后更新其权限。我不需要访问所有的云端硬盘文件,只需要访问那些选定的文件。

但是,当使用 https://www.googleapis.com/auth/drive.file范围,当我尝试更改文档的权限时出现 404 错误。如果我使用 https://www.googleapis.com/auth/drive,我不会收到此错误范围,但这给了我比我需要的更多的访问权限。

有没有办法让文件选择器与更有限的 https://www.googleapis.com/auth/drive.file 一起工作?范围?

这是我的文件选择器代码:

 <!-- The standard Google Loader script. -->
    <script src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">


    // Use the Google Loader script to load the google.picker script.
    //google.setOnLoadCallback(createPicker);
    google.load('picker', '1');

    // Create and render a Picker object 
    function createPicker() {
         var view = new google.picker.DocsView(google.picker.ViewId.DOCS);
         view.setMode(google.picker.DocsViewMode.LIST);
          //view.setMimeTypes("image/png,image/jpeg,image/jpg");    
          var picker = new google.picker.PickerBuilder()
          //.enableFeature(google.picker.Feature.NAV_HIDDEN)
          //.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
          .setAppId("<%= ENV['GOOGLE_ID']%>")
          .setOAuthToken("<%= current_user.token %>") //Optional: The auth token used in the current Drive API session.
          .addView(view)
          .addView(new google.picker.DocsUploadView())
          .setCallback(pickerCallback)
          .build();
       picker.setVisible(true);

    }


    // callback implementation.
    function pickerCallback(data) {
      var url = 'nothing';
      if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
        var doc = data[google.picker.Response.DOCUMENTS][0];
        url = doc[google.picker.Document.URL];
        title = doc.name;
        id = doc.id;
        type = doc.type;
        embed = doc[google.picker.Document.EMBEDDABLE_URL ];
      }

最佳答案

在 Google Plus 上的 Google Drive Developer discussion 上,感谢人们的帮助,回答我自己的问题:

这确实有效。我在选择器实现中使用了错误的 App_ID - 我只需要在客户端 ID 的开头使用数字字符串。另一个问题,它不适用于本地主机,只能在生产环境中使用。

完整讨论在这里:https://plus.google.com/u/0/108228914813783364664/posts/RgvmZwJcbE8

关于ruby-on-rails - 让谷歌文件选择器与 drive.file 范围一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119557/

相关文章:

ruby-on-rails - 嵌套表单中的 collection_check_boxes 无法正确插入多对多连接表

ruby-on-rails - 在使用 Google 的网络搜索 API 时,我应该如何提供网站的图像预览?

javascript - 谷歌驱动器JS API nextpageToken无效

ruby - 以 "="结尾的 ruby​​ 方法是什么意思?

google-drive-api - 新的 Google Drive Android API (GDAA) 中报告的已删除文件状态不可靠

java - Java 版 Google Drive 推送通知授权

ruby-on-rails - Ruby On Rails 5.2 和多个数据库

ruby-on-rails - 无法使用 rspec Controller POST 创建操作(设计和 cancan)进行测试

Ruby 反斜杠在新行上继续字符串?

ruby - 如何使用#{variable} 在 Ruby 中格式化带有 float 的字符串?