问题标签 [google-api-js-client]

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 回答
138 浏览

authentication - 使用google js api对用户进行身份验证并获取用户的google id

我用这个作为参考:

https://code.google.com/p/google-api-javascript-client/wiki/Authentication

我正在尝试对用户进行身份验证,然后在身份验证后获取他/她的 google_id。

我有一个名为“使用 google 登录”的按钮,当用户单击它时,它会启动一个弹出窗口,询问他/她是否要授权该应用程序。之后,当它尝试对此进行 GET 操作时,它会抛出一个错误,说“错误请求”和“400 未找到”

https://www.googleapis.com/discovery/v1/apis/plus/v1/ / ** / * ** 400(错误请求)

我正在使用与上述 api 中描述的相同的代码。

我还交叉检查了 api 密钥和客户端 ID,但一切似乎都很好。

对此有什么帮助吗?

0 投票
1 回答
962 浏览

google-api-js-client - Google API 加载回调时间?

Google javascript API 客户端库脚本在如下部分中加载:

在加载 API 代码时调用 onload 参数中指定的方法。是否保证这也将在 DOM 完成加载之后进行?我的 onload 方法需要通过 ID 找到一个元素并使用从 Google API 获得的数据对其进行修改,我担心我是否可以指望在调用该方法时该元素可用。jsjs

0 投票
1 回答
3266 浏览

javascript - Google 授权弹出窗口卡在 chrome 扩展中

我在 chrome 扩展中使用gapi客户端来访问 Google Drive。第一步是授权我的应用程序。我正在使用 gapi.auth.authorize 来启动授权。在我通过 gapi 启动的弹出窗口授权应用程序后,窗口永远不会关闭并卡住,如下图所示。但是后台授权已经成功,因为如果我手动关闭窗口,下次我就看不到卡住的弹出窗口了。有人能指出我做错了什么吗?

在授权弹出窗口上单击“允许访问”后,

在此处输入图像描述

然后它显示一个空白弹出窗口,它被卡住了

弹窗卡住了

我正在使用的代码

0 投票
3 回答
2714 浏览

google-contacts-api - 使用 google api javascript 客户端访问 google 联系人 - 如何?

我正在实现基于 google api javascript 库的仅限客户端的 webapp。不幸的是,这个库不支持联系人。或者是吗?它是一个未记录的功能吗?如果没有,是否有另一种访问联系人的工作方式?例如,使用已弃用的 gdata api?我已经在 stackoverflow 上找到了一些关于这个主题的答案。但他们都没有给我一个明确的答案。

0 投票
1 回答
1937 浏览

javascript - 如何使用 Google Drive Api 管理用户文档权限设置?(Javascript)

我是 Google Drive SDK 的新手。我跟着

https://developers.google.com/drive/v2/reference/permissions/insert?hl=en

这个例子展示了如何更改文件的权限。我可以运行这段代码,但我的问题是我想更改多个文件的权限。我为用户尝试了一些循环,并在其中 fileId 循环,但是因为 javascript 不等待子函数完成(异步调用函数),所以它不会为我工作

请帮我

以下是我的代码...我对此感到非常困惑,请帮我解决这个问题

这是代码请在这里更正我

0 投票
2 回答
2989 浏览

javascript - 使用 Jasmine 有效地模拟全局属性

我的应用程序依赖于 gapi javascript 客户端 ( https://apis.google.com/js/api.js ) 和 jsapi ( https://www.google.com/jsapi )。

我使用 AngularJS 构建我的应用程序并使用 Karma(以前称为 Testacular)作为测试运行器。

我设法通过在 Karma 中加载它们并接下来监视一些方法来有效地模拟它们:

我想用 Jasmine 模拟它们,但实际上不包括它,但我可以弄清楚如何。我尝试在 beforeEach 中创建一个存根:

但它仍然是未定义的。

谢谢你的帮助。

0 投票
1 回答
1695 浏览

javascript - 为 javascript google drive api 设置搜索参数

抱歉,如果这个问题已经存在,我已经搜索了两天。我正在尝试列出谷歌驱动器根文件夹中尚未使用 javascript 删除的所有文件,这是正在使用的代码

但结果包含已删除的文件和未删除的文件,所以我真的不知道出了什么问题

0 投票
1 回答
818 浏览

google-api - 谷歌驱动 SDK JS api 中的错误(类型错误:无法读取未定义的属性“sl”)

几周前,我们开始注意到来自 google 客户端 API 或 google drive JS api 的奇怪错误(不确定是哪个,URL 参考如下),过去几天它们的频率有所增加

这似乎主要影响 Windows Chrome - 我们错误日志中的用户代理的典型示例是

据我所见,.sl 唯一的一行是:

这来自

我知道这是故意神秘的,所以我无法建议如何解决它,但如果有人调查这个问题,我将不胜感激,因为频率似乎在增加。也许 _Ak.pl 周围的守卫在执行 .sl 之前检查它是否不为空?

0 投票
1 回答
1485 浏览

google-drive-api - Google Drive Share 对话框错误 - 'X-Frame-Options' 到 'SAMEORIGIN'

更新:我们找到了一个答案并将其发布在下面,对不起,那一刻......

在 Google Drive Javascript 应用程序中打开共享对话框时出现以下错误。

我认为这是因为应用程序的 Open URL 设置为启动服务器,但随后我们重定向另一台服务器以实现负载平衡。此处引用了这些要求:Google drive 共享文件对话框的要求。

出于性能原因,我们的负载平衡服务器使用不同的 3 级域。例如,Drive 中的 Open URL 指向单个服务器:

该服务器然后重定向到以下之一以分配负载:

我们需要分配负载,因为我们的应用程序有一个资源密集型的实时后端组件。我希望我们能想出一种更好的方法来跨服务器分配用户,但这是我们能想到的最好的方法。

任何人都可以建议一种更好的分配方法来保留原产地吗?或者有没有可能的方法来规避这个相同的来源要求。能够在应用程序中使用共享对话框真是太好了。

顺便说一句,选择器对话框工作得很好。但是,它确实会在控制台中引发错误..

0 投票
2 回答
1205 浏览

javascript - 使用 Google Drive SDK 共享文件

我一直在关注 Google 的文档以在云端硬盘上共享文件:共享文件

如果我从 Google Drive 界面将文件上传到 Google Drive,然后尝试从我的 webapp 共享此文件,我在我的 javascript 控制台中收到以下错误:

在铬:

在火狐中:

现在奇怪的是,如果我从我的 web 应用程序创建文件并通过 api 上传到 Drive,我可以毫无问题地共享文件。

更奇怪的是,我从云端硬盘中打开一次文件就足够了(我已经在云端硬盘中安装了 web 应用程序,因此我可以使用我的 web 应用程序打开文件)以便能够共享它,即使以后我不使用云端硬盘来再打开文件。

知道什么可能导致这种行为吗?

在我的 Drive SDK 控制台中,我将打开 URL 设置为:http://sandbox.velop.org/my-google-drive/detail

当我使用我的网络应用在云端硬盘中打开文件时,云端硬盘会将我重定向到:(http://sandbox.velop.org/my-google-drive/detail?state=%7B%22ids%22:%5B%220B6UmN_AivG7SLWVYakF2Rk1CdDg%22%5D,%22action%22:%22open%22,%22userId%22:%22105908447865504163566%22%7D能够共享)

当我在我的 web 应用程序中打开一个文件时,URL 是这样的:(http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail只有以前从驱动器打开一次才能共享)

编辑:

我意识到这是 Google Drive API 的标准行为,如下所述

当用户批准这些范围时,将为用户安装应用程序,并可以访问用户使用应用程序创建或打开的文件。

有没有办法让应用程序打开/写入任何文件?

我认为https://www.googleapis.com/auth/drive在注册我的应用程序时使用范围可以让我这样做,但似乎并非如此..