Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有本地服务器的情况下设置Google Drive客户端ID进行访问?_Javascript_Google Drive Api - Fatal编程技术网

Javascript 如何在没有本地服务器的情况下设置Google Drive客户端ID进行访问?

Javascript 如何在没有本地服务器的情况下设置Google Drive客户端ID进行访问?,javascript,google-drive-api,Javascript,Google Drive Api,我想知道是否有可能,比如说,在一台随机计算机上打开一个应用程序,登录、验证并使用驱动器API,而不必让本地服务器一直运行?那么,人们究竟是如何着手建立这一机制的呢?如果这是一个简单的问题,我很抱歉,但我只是有点不知所措,因为到目前为止我发现的说明还不清楚 编辑: 到目前为止,我有以下几点: 通过创建项目 在那里打开该项目,导航到API&auth下的API,并确保启用了驱动API 进入凭据,并单击“创建新的客户端ID” 选定的“Web应用程序” 将授权的javascript源代码设置为 删除重定

我想知道是否有可能,比如说,在一台随机计算机上打开一个应用程序,登录、验证并使用驱动器API,而不必让本地服务器一直运行?那么,人们究竟是如何着手建立这一机制的呢?如果这是一个简单的问题,我很抱歉,但我只是有点不知所措,因为到目前为止我发现的说明还不清楚

编辑:

到目前为止,我有以下几点:

  • 通过创建项目
  • 在那里打开该项目,导航到API&auth下的API,并确保启用了驱动API
  • 进入凭据,并单击“创建新的客户端ID”
    • 选定的“Web应用程序”
    • 将授权的javascript源代码设置为
    • 删除重定向URI中的任何内容并将其保留为空,然后按“创建客户端ID”
  • 获取一个类似或的示例,并将其存储在名为index.html的本地文件中。
    • 这不能通过在浏览器中简单地打开来运行,所以我必须托管一个本地服务器
    • 我在命令行中导航到该目录,然后键入“python-msimplehttpserver 4567”(不带引号),这托管了一个本地服务器
    • 在我的web浏览器中打开,在将新创建的客户机ID复制到他们要求的文件中之后,所有这些示例都可以正常工作
  • 我还制作了一个python应用程序,使用I:

  • 单击“创建新的客户端ID”,然后单击“已安装的应用程序”和“其他”,然后单击“创建客户端ID”
  • 接下来,我转到,单击API访问,找到客户机ID,然后单击下载JSON
  • 我将这个client_secrets.json放在我的python应用程序旁边,这使pydrive能够成功地进行身份验证,并且我可以使用该客户端ID在任何地方访问和修改我的google drive文件。当然,在将应用程序提供给其他人之前,我删除了这个client_secrets.json,并向他们展示了如何完成这个过程
  • 然而,除此之外,我有点不确定,特别是:

    • 如何在web应用程序中使用driveapi而不必设置本地服务器,比如只需在jsfiddle中运行代码,并通过使用客户机ID通过我的项目发送请求,以及
    • 如果设置了本地服务器,网络上的任何人都可以访问该服务器,那么如何修改上述步骤以允许任何客户端打开该服务器的网页以使用google drive API
    我知道我很可能需要在开发者控制台中设置一个公共API访问,但是我不完全确定我应该使用什么引用。那么,有没有一种简单的方法可以做到这一点


    我还知道,只能使用客户端的用户名和密码打开google Excel电子表格,所以我怀疑我正在寻找的是可能的,但我不确定。

    好的,所以我找到了一个非常有效的解决方案:

  • 开一个帐户(它是免费的)
  • 登录后,转到oauth.io
  • 你应该看一个默认的应用程序,或者你可以做另一个,这其实并不重要
  • 在“域和URL白名单”下,您将看到一个小框,上面写着“localhost”。键入 “(不带引号)并按enter键。这允许任何JSFIDLE向您的应用程序进行身份验证
  • 接下来,我们需要启用Google Drive支持
    • 转到Google开发者控制台
    • 与前面一样,导航到API和Auth下的凭据
    • 单击“创建新的客户端ID”
    • 选择Web应用程序
    • 在“重定向URI”下,放置“”和“”(不带引号,在单独的行上)
    • 在“Javascript源代码”下放置“”和“”
    • 按“创建客户端ID”
  • 现在去你的办公室。单击左侧列表中的Google Drive。按next,然后输入您在上一步中创建的客户端id和客户端密码(通过Google开发者控制台)
  • 选择联机(至少联机是首选,因为脱机应仅用于服务器端)
  • 单击Scope教科书,然后选择“(查看并管理google驱动器中的文件)。”
  • 按完成。现在单击Try Auth按钮,希望您能得到如下输出
  • { “访问令牌”:“ya29.AwH-1N_gnstlbuzfor4W9CCCGGKRQPMYKYV4QVETCIZHOZNU5AFUJOYQZUKALFJDIW2ocuve7JBQ”, “令牌类型”:“承载者”, “expires_in”:3600, “提供商”:“谷歌硬盘” } 要使用此功能,您可以执行以下操作:

    // This only works because we're set to "No wrap - in <head>"
    function ShowDriveFileList() {
        var accessToken;
        // Initialize OAuth with our key
        OAuth.initialize('lmGlb8BaftfF4Y5en_c8XYOSq2A');
    
       // Connect to google drive, and print out file list
        OAuth.popup('google_drive').done(function (result) {
        var xmlHttp = null;
            xmlHttp = new XMLHttpRequest();
            xmlHttp.open("GET", "https://www.googleapis.com/drive/v2/files", false);
            xmlHttp.setRequestHeader("Authorization", "Bearer " + result.access_token);
            xmlHttp.send(null);
            alert(xmlHttp.responseText);
        }).fail(function (err) {
            alert(err);
        });;
    }
    
    //这只起作用,因为我们设置为“No wrap-in”
    函数ShowDriveFileList(){
    var-accessToken;
    //用我们的密钥初始化OAuth
    OAuth.initialize('lmglb8aftff4y5en_c8XYOSq2A');
    //连接到谷歌硬盘,打印出文件列表
    OAuth.popup('google_drive').done(函数(结果){
    var xmlHttp=null;
    xmlHttp=新的XMLHttpRequest();
    open(“GET”https://www.googleapis.com/drive/v2/files“,假);
    setRequestHeader(“授权”、“承载者”+结果.access_令牌);
    xmlHttp.send(空);
    警报(xmlHttp.responseText);
    }).失败(功能(错误){
    警惕(err);
    });;
    }
    

    你可以在网站上找到。这使用了我的oauth.io客户端id,但是你可以用你的替换它,它也应该可以工作。

    好的,所以我找到了一个非常有效的解决方案:

  • 开一个帐户(它是免费的)
  • 登录后,转到oauth.io
  • 你应该看一个默认的应用程序,或者你可以做另一个,这其实并不重要
  • 在“域和URL白名单”下,您将看到一个小框,上面写着“localhost”。键入 “(不带引号)并按enter键。这允许任何JSFIDLE向您的应用程序进行身份验证
  • 接下来,我们需要启用Google Drive支持
    • 转到Google开发者控制台
    • 与前面一样,导航到API和Auth下的凭据
    • 单击“创建新的客户端ID”
    • // This only works because we're set to "No wrap - in <head>"
      function ShowDriveFileList() {
          var accessToken;
          // Initialize OAuth with our key
          OAuth.initialize('lmGlb8BaftfF4Y5en_c8XYOSq2A');
      
         // Connect to google drive, and print out file list
          OAuth.popup('google_drive').done(function (result) {
          var xmlHttp = null;
              xmlHttp = new XMLHttpRequest();
              xmlHttp.open("GET", "https://www.googleapis.com/drive/v2/files", false);
              xmlHttp.setRequestHeader("Authorization", "Bearer " + result.access_token);
              xmlHttp.send(null);
              alert(xmlHttp.responseText);
          }).fail(function (err) {
              alert(err);
          });;
      }