问题标签 [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 回答
1627 浏览

javascript - 使用 Google 的 gapi 库和现有的访问令牌进行授权的客户端 JS API 调用?

一些背景

我使用 Meteor 作为应用程序框架,并使用该accounts-google包对用户进行身份验证。使用帐户包非常好,因为它处理了获取访问令牌、在到期时刷新它们等所有繁琐的工作。但是,我想要更多关于用户的个人资料信息,而不是Meteor.user()对象中填充的信息。

使用 Facebook,我能够轻松地加载他们的客户端 JS 库,并使用Meteor.user().services.facebook.accessToken并遵循 API 上的文档发出图形 api 请求:

https://developers.facebook.com/docs/javascript/reference/FB.api

我的问题

在引用 Google 的 JavaScript API 时,文档指出,在进行 API 调用时,请求会自动包含访问令牌,但仅在使用 gapi 处理授权请求时才包含。

https://developers.google.com/api-client-library/javascript/features/authentication#MakingtheAPIrequest

这在依赖第 3 方授权包时(或当您的应用程序在客户端处理 Google 的身份验证时)没有帮助。

gapi.client有没有办法在使用库方法的请求中使用现有的访问令牌?

0 投票
3 回答
1177 浏览

javascript - Google URL 缩短 API - 未捕获的类型错误:未定义不是函数

我正在关注此站点的 google URL shortner API 教程:

http://hayageek.com/google-url-shortener-api/

我正在跟进,这是我的代码:

但是,当我尝试运行 URL 缩短器时,它在第 8 行给出了“未捕获的类型错误:未定义不是函数”错误。

不知道我在这里做错了什么......我是一个初学者程序员。

0 投票
1 回答
84 浏览

javascript - App Engine Endpoints:用于 OAuth2 授权的 Javascript 客户端库需要多个弹出窗口

我是否正确理解客户端授权背后的概念:要向我的端点 API 发出请求,我必须调用

每次 oauth 令牌过期时,都会触发弹出窗口。在我看来,它不会带来很好的用户体验。有没有办法绕过这个流程?

0 投票
2 回答
633 浏览

node.js - 使用带有 webpack 的 google-api-nodejs-client 构建 grunt 时出错

我在 ReactJS Webpack 应用程序中使用https://www.npmjs.com/package/googleapis 。它确实有一个警告,它是一个 alpha 版本,所以会出现问题,这就是我遇到的问题。

npm install googleapis --save安装googleapis好,添加"googleapis": "^2.0.2"到我的 package.json 中,但是当我运行时,grunt build我收到以下警告(随后有很多错误,我会根据要求发布,因为它是很多文本):

中的违规行~/googleapis/apis/index.js是:

我遇到的错误之一:

在我的 React 组件中需要 googleapis 的代码:

注意:可以根据要求提供组件中的任何其他代码,但我认为它与此问题无关。

我的package.json依赖:

npm 版本 2.5.1

节点版本 v0.12.1

提前感谢您的帮助!

0 投票
2 回答
482 浏览

java - 如果未登录,服务器端重定向

我使用 Cloud Endpoints 并执行客户端 oauth 来访问我的后端。这很好用,除了这意味着我只能在整个页面和附加脚本加载并且 oauth 请求完成之后检查点击我的应用程序 URL 的人是否是用户。

我想启用服务器端身份验证,以便我可以为我的登录页面和我的应用程序使用相同的 URL,如果她是用户,则将用户重定向到应用程序,如果不是,则重定向到登录页面。

问题是User Tutorial使用UserService进行身份验证,而 Cloud Endpoints 使用OAuth Service。我不知道如何在我的重定向过滤器中使用 OAuth,因为上面链接到的 OAuth 部分中的所有链接都用于 OAuth 1 并且已弃用

如何在我的重定向过滤器中检查访问的人是否是用户,同时获得一个令牌,如果她是用户,我可以使用该令牌随后调用我的端点?

我正在使用Google Api JS 客户端调用云端点,因此该解决方案将与其最佳集成,使用gapi.auth.setToken(token)检索到的令牌并绕过整个gapi.auth.authorize(params, callback)舞蹈。

0 投票
1 回答
3306 浏览

reactjs - 如何在 Reactjs 中使用 Google 的 gapi?

Google 的 gapi js 库需要一个这样指定的 onload 函数:

<script src="https://apis.google.com/js/client.js?onload=init"></script>

我如何与 ReactJS 互操作?

我尝试使用 react-script-loader ( https://github.com/yariv/ReactScriptLoader ) 遇到了一些麻烦,因为当脚本加载器认为它已经完成返回它时,gapi 还不存在。

0 投票
3 回答
5532 浏览

api - 使用 Google API 退出登录不起作用

我按照以下说明进行操作:

https://developers.google.com/identity/sign-in/web/sign-in

一切正常(登录用户),但我无法退出用户。我收到以下错误:

未捕获的 gapi.auth2.ExternallyVisibleError:gapi.auth2 已使用不同的选项进行初始化

执行时失败:

https://developers.google.com/identity/sign-in/web/sign-in#sign_out_a_user

我需要代码示例来从我的 Web 应用程序中注销用户,并从 Google 帐户中完全签署用户。

0 投票
0 回答
877 浏览

javascript - Gapi 分析 ext 未定义 (js)

我正在尝试使用谷歌分析 api(javascript)来显示一些图表(结合到 charts.js)。

我在这里按照说明操作:tuto gapi

我创建了一个应用程序,并在代码中替换了我的 clientId,但出现错误:

gapi.analytics.ext 未定义

这是我的代码:

有谁知道如何配置我的应用程序?我做错了什么吗?

感谢帮助 !

0 投票
1 回答
2947 浏览

scope - 谷歌登录auth2自定义范围没有openid

我想自定义范围以仅允许“电子邮件”和“个人资料”,而没有“openid”
,因为我想让它只要求访问电子邮件和基本个人资料信息。

我尝试使用元数据来做到这一点:

或js:

但它不起作用:在生成的 URL 中总是有“openid”范围......

我怎样才能“重置”范围,只允许我想要的?

0 投票
1 回答
957 浏览

java - 如何将 google api access_token 从 java 服务器传递到 gapi javascript 客户端?

我能够使用在 Tomcat 中运行的 Java 中的 AuthorizationCodeFlow 获取凭据。

现在我正在尝试将我在服务器上获得的访问令牌传递回客户端,以便我们能够使用 gapi javascript 客户端在浏览器中进行工作,而无需通过我们的服务器。

我使用以下命令在 gapi 中设置访问令牌:

然后我调用 gapi.client.load 来获取驱动客户端代码:

然后我调用一个函数来获取或在 Google Drive 中创建一个文件夹(这已经使用 gapi.auth.authorize() 进行了测试,所以我知道代码应该可以工作。)。

但是在 getOrCreateFolder 中,当我调用 gapi.client.drive.children.list(...) 时,响应是

我在多个地方看到人们表示他们已经这样做了。但到目前为止,我无法让这个工作。

在提琴手中,我得到以下响应:

这是稍微编辑的请求: