gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:01:06 25 4
gpt4 key购买 nike

我想知道是否有可能,比方说,在随机计算机上打开一个 jsfiddle 并登录、验证和使用驱动器 API,而不必让本地服务器一直运行?究竟该如何设置呢?如果这是一个简单的问题,我很抱歉,但我有点迷路了,因为到目前为止我发现的说明还不清楚。

编辑:

到目前为止,我已经从 herehere 得到:

  1. 通过 Google Developers Console 创建了一个项目。
  2. 在那里打开那个项目,导航到 APIs & auth 下的 APIs,并确保 Drive API 已启用
  3. 进入凭据,然后点击“创建新的客户端 ID”
    • 选择“Web 应用程序”
    • 将授权的 javascript 来源设置为 http://localhost:4567
    • 删除重定向 URI 中的所有内容并将其留空,然后按下“创建客户端 ID”。
  4. 获取 thisthisthis 等示例,并将其存储在名为 index.html 的本地文件中。
    • 这不会通过简单地在浏览器中打开来运行,所以我必须托管一个本地服务器
    • 我在命令行中导航到该目录,然后键入“python -m SimpleHTTPServer 4567”(不带引号),这托管了一个本地服务器
    • 在我的网络浏览器中打开 http://localhost:4567,在将新创建的客户端 ID 复制到他们要求的这些文件中之后,所有这些示例都工作正常。

我也做了一个 python 应用程序,使用 pydrive 我:

  1. 点击“创建新的客户端 ID”,然后点击“已安装的应用程序”和“其他”,然后点击“创建客户端 ID”。
  2. 接下来,我转到 Old Google APIs Console,单击“API 访问”,找到该客户端 ID,然后单击“下载 JSON”。
  3. 我将此 client_secrets.json 放在我的 python 应用程序旁边,这使 pydrive 可以成功进行身份验证,我可以使用该客户端 ID 在任何地方访问和修改我的 google drive 文件。当然,我在将应用程序交给其他人之前删除了这个 client_secrets.json,并向他们展示了如何执行此过程。

但是,除此之外,我有点不确定,特别是:

  • 如何在 Web 应用程序中使用 Drive API 而无需设置本地服务器,只需在 jsfiddle 中运行代码并通过使用客户端 ID 通过我的项目发送请求,以及
  • 如果设置了网络上任何人都可以访问的本地服务器,如何修改上述步骤以允许任何客户端打开该服务器的网页以使用 google drive API?

我知道我很可能需要在开发人员控制台中设置公共(public) API 访问权限,但我也不完全确定我应该使用哪些 Referer。那么有没有一种简单的方法可以做到这一点?

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

最佳答案

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

  1. 制作一个OAuth.io帐户(免费)。
  2. 登录后,转到您的 oauth.io dashboard .
  3. 您应该查看默认应用程序,或者您可以制作另一个并不重要。
  4. 在“Domains & URLs whitelist”下,您会看到一个小方框,上面写着“localhost”。输入 ” http://fiddle.jshell.net/ "(不带引号)并按回车键。这允许任何 jsfiddle 通过您的应用程序进行身份验证
  5. 接下来,我们需要启用 Google Drive 支持
    • 转到 Google Developers Console
    • 像以前一样,导航到 APIs 和 Auth 下的 Credentials。
    • 点击“创建新的客户 ID”
    • 选择网络应用
    • 在“重定向 URI”下放置“https://oauth.io/auth”和“http://oauth.io/auth”(不带引号,在不同的行上)
    • 在“Javascript 起源”下放置“https://oauth.io”和“http://oauth.io
    • 按“创建客户 ID”
  6. 现在转到您的 Oauth.io key manager .点击左侧列表中的 Google 云端硬盘。按下一步,然后输入您在上一步中创建的 client_id 和 client_secret(通过 Google Developers Console)
    1. 选择在线(至少在线是首选,因为离线应该只用于服务器端)
    2. 点击范围教科书,然后选择“https://www.googleapis.com/auth/drive(查看和管理您的谷歌云端硬盘中的文件)。”
    3. 按完成。现在点击 Try Auth 按钮,希望你会得到一些像
    4. 这样的输出
{  "access_token": "ya29.AwH-1N_gnstLBuZfOR4W9CCcggKrQpMyKYV4QVEtCiIzHozNU5AfUJoYQzukALfjdiw2iOCUve7JbQ",  "token_type": "Bearer",  "expires_in": 3600,  "provider": "google_drive"}

To use this, you can do something like:

// 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);
});;
}

您可以在 http://jsfiddle.net/JMTVz/41/ 找到.这使用了我的 oauth.io 客户端 ID,但您可以将其替换为您的,它应该也能正常工作。

关于javascript - 如何在没有本地服务器的情况下设置 Google Drive 客户端 ID 以进行访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com