问题标签 [google-drive-realtime-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2143 浏览

oauth - 无法使用刷新令牌获取访问令牌

我在 java 上编写了桌面应用程序,它可以访问 Google 驱动器。(它只是上传和下载文件)。

目前访问类型为在线。当我需要访问驱动器的文件/文件夹时,我将他的浏览器重定向到 Google URL 并获取访问代码:

一切正常!但我只需要第一次进行重定向。

当我谷歌时,在Google Drive API 文档中,我发现我可以通过浏览器重定向获取刷新令牌并将其保存在数据库中。(换句话说,我可以使用离线访问)。

每次我需要从谷歌驱动器读取数据时,我都会使用刷新令牌获取访问令牌而无需重定向。是不是?

所以我得到这样的刷新令牌:

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=695230079990.apps.googleusercontent.com&scope=https://www.googleapis.com/auth/drive&response_type=code&redirect_uri=https://localhost

问题 1
我从浏览器重定向中获取代码。它是刷新令牌,不是吗?现在,我需要使用该刷新令牌获取访问令牌。

但我有错误 400

问题 2) 当我尝试更改重定向 url 时出现该错误:*

redirect_uri 的参数值无效:不允许非公共域:https://sampl.ecom

那么,我必须创建 Web 应用程序客户端 ID,而不是从谷歌 API 控制台安装应用程序吗?我不能在已安装的应用程序中更改重定向 URI 吗?我很困惑,我不知道,我应该使用哪个。

0 投票
1 回答
8242 浏览

google-drive-api - 我是否必须共享 Google Drive 文件夹才能访问服务帐户?

我已经创建了一个与 Google Drive API 一起使用的服务帐户,如下所述: https ://developers.google.com/drive/delegation

在完成所有阅读之后,我的印象是该服务帐户应该代表实际帐户,该帐户是正在使用的 Google Apps for Business 域的一部分。

有了这个,我希望在处理 Google Drive 文件夹时不需要处理特殊权限。但是,在验证尝试列出文件夹的内容后,没有显示任何内容。

如果我将服务帐户电子邮件地址专门添加到文件夹的“共享”列表中,一切似乎都按预期工作。我可以使用 API 列出文件夹中的文件。

我的问题是,这是应该的方式还是我错过了允许服务帐户代表实际帐户访问文件夹而无需专门将服务帐户电子邮件地址添加到共享列表的内容?

感谢您的时间。

0 投票
1 回答
384 浏览

google-drive-realtime-api - 使用实时 API 时“加载资源失败”

使用实时 API 时,有时会出现此错误:

加载资源失败:服务器响应状态为 400 (Unknown SID) https://drive.google.com/otservice/bind?id=13bt-KPBrU6WRdWSqLBl2cni366tuZqT …&RID=rpc&SID=7808B6FE50C4A180&CI=0&AID=15&TYPE=xmlhttp&zx =64nyubda57et&t=1

这是什么意思?

0 投票
2 回答
586 浏览

google-app-engine - 没有用户登录两次的客户端和服务器端身份验证?

是否可以使用客户端和服务器端的 oauth2 身份验证,而不需要为每个单独的用户登录?

跨客户端身份页面似乎正是我想要的,但它没有描述如何为 Web 客户端和服务器项目实现这一点。 https://developers.google.com/accounts/docs/CrossClientAuth

具体来说,这就是我想要实现的目标:我有一个 Web 应用程序,它使用驱动器 API 创建文件和驱动器实时 API 用于协作编辑文档,所以我需要进行客户端身份验证。我还希望允许用户与其他用户公开共享文档的只读副本。我想通过在谷歌应用引擎中存储文档数据的快照来做到这一点,任何人都可以阅读,但只能由创建谷歌文档的用户编写。这表明我需要服务器端身份验证。但是有什么方法可以做到这一点,而无需用户登录一次以进行客户端访问,然后再次登录以进行服务器端访问?

这个问题似乎很相似:Authenticating G+ users on the server side, after client-side login 但接受的答案似乎建议简单地将用户 ID 存储在应用引擎上并检查客户端上的用户 ID 是否匹配。这似乎只需要知道文件创建者的用户 ID 即可覆盖应用引擎服务器上的文档,这是不安全的。

0 投票
0 回答
101 浏览

google-drive-api - ObjectChanged 事件不会为 ValuesAdded/ValuesRemoved 冒泡

我正在尝试减少附加到我的协作模型的事件侦听器的数量。为了做到这一点,我已经开始监听 ObjectChanged 事件而不是特定的事件类型,并委托给其他处理程序。但是,对于 CollaborativeLists 上的 ValuesAdded/ValuesRemoved 更改,ObjectChanged 事件似乎没有正确冒泡。

上面的代码在 doc load 上运行并演示了问题。在这种情况下,我希望触发两个 ObjectChanged 事件(第一个用于在地图上设置的列表,第二个用于将字符串推送到列表中)。第一个事件正确触发,但是列表推送不会在“docRoot”或“testMap”上触发 ObjectChanged 事件。由于这两个都是 testList 的祖先,因此应该将事件冒泡给它们(基于https://developers.google.com/drive/realtime/handle-events#event_bubbling)。

然而,在 testList 上触发了 ObjectChanged 事件,因此看起来只有冒泡部分存在问题。

有没有办法确保事件冒泡会发生?此外,对于正在冒泡的事件,有没有办法在中途停止冒泡?

0 投票
0 回答
51 浏览

google-drive-api - 模型在谷歌驱动器实时 api 中没有方法“isInitialized”

我尝试为实时模型的 isInitialized 方法添加测试,但该方法似乎未定义。

方法文档: https ://developers.google.com/drive/realtime/reference/gapi.drive.realtime.Model#gapi.drive.realtime.Model.prototype.isInitialized

0 投票
3 回答
793 浏览

google-drive-api - Google Drive API - 即使指定了资源,在向文件插入评论时“需要资源元数据”

我正在尝试向 Google Drive 文档添加评论 - 身份验证令牌和客户端 ID 都是正确的(尝试执行其他所有操作),但是在添加评论时 - 我收到错误消息:

不知道发生了什么。我正在发送一个包含 { content: 'something' } 的资源以及 fileId 的另一个参数。

如果您有任何想法,请告诉我。

谢谢!

0 投票
0 回答
33 浏览

google-drive-realtime-api - 为文件夹创建实时文档

我想创建一个实时模型,其中包含驱动器文件夹的名称、描述和其他一些属性。当我尝试使用文件夹 ID 创建实时文档时,我收到“错误请求”。是否支持为文件夹创建实时模型?

0 投票
0 回答
143 浏览

google-drive-realtime-api - 更改协作字符串时出现 500(内部服务器错误)

我正在将一大块字符(通过将其复制/粘贴到编辑器中)添加到协作字符串,但这只会给出错误 500。

POST https://drive.google.com/otservice/save?id=1qA6DDrkUlz4BX81ReuXWgOJTN5b61LL …access_token=ya29.AHES6ZS5MsuPJConOkygYe94jez79H_A_kRByke13RT1YM3UNsQQ-9D_ 500(内部服务器错误)api:88

我能做些什么来追查根本原因吗?

0 投票
1 回答
710 浏览

google-drive-realtime-api - 创建新文件时发生冲突 (409)

在或多或少同时为具有两个帐户的给定文件创建新的实时模型时,我收到此错误:

加载资源失败:服务器响应状态为 409(冲突)https://drive.google.com/otservice/save?id=1gCma8cExxFTxwXK5jDddLq1Gug4khzV ...access_token=ya29.AHES6ZRuMiexU30oMHKo05lGOlpm4fpDqigaxeF_O9EiBllvFnKcs__H

如果我从文档中得到它,这不应该发生,因为模型的初始化只会发生一次(?)。