问题标签 [google-oauth]

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 投票
6 回答
38063 浏览

oauth-2.0 - 使用服务帐户通过 OAuth 2.0 调用 v3 Google 日历 API 时出现“需要登录”401 未经授权的消息

首先,让我解释一下我要做什么,因为这是一个两部分的问题。

我正在构建一个 JAX-RS 服务,该服务通过 OAuth2 在内部使用 Google 帐户进行身份验证,因此它可以访问和操作 Google 日历。该服务将由一个网站 (Joomla) 调用,该网站将允许登录该网站的用户在日历活动中注册他们的电子邮件地址,这样他们就可以在活动临近时收到电子邮件通知。这些用户不知道底层的 Google 帐户。

所以我的第一个问题是,使用服务帐户身份验证是否正确?查看 Google 文档,它是满足非人工身份验证的唯一用例(因此服务器到服务器身份验证)。

第二个问题是我已经编写了一些代码来执行此操作,但是当我调用日历提要的执行方法时,我得到了 401/未经授权的响应,返回了以下错误。此代码取自 Google 示例。

我正在使用 Google Calendar API 的 v3-rev3-1.5.0-beta。我已经在帐户中打开了日历 API,并创建并下载了一个私钥,该私钥在下面的代码中使用。

我在 Eclipse 中本地调用下面的代码,而不是从 Web 服务器调用。

所以我做的第一个调用是取回一个凭证对象(Id 被 X 混淆了):

下一步是调用 Calendar API,如下所示(中间没有调用其他代码):

调用 list().execute() 会导致以下错误:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized { "code" : 401, "errors" : [ { "domain" : "global", "location" : "Authorization", "locationType" : " header", "message" : "需要登录", "reason" : "需要" } ], "message" : "需要登录" } 在 com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException. java:159) 在 com.google.api.client.googleapis.json.GoogleJsonResponseException.execute(GoogleJsonResponseException.java:187) 在 com.google.api.client.googleapis.services.GoogleClient.executeUnparsed(GoogleClient.java:115)在 com.google.api.client.http.json。JsonHttpRequest.executeUnparsed(JsonHttpRequest.java:112) at com.google.api.services.calendar.Calendar$CalendarList$List.execute(Calendar.java:510) at uk.org.reigatepriorybowmen.Service.registerEmailForAllCalendarEvents(Service.java: 55) 在 uk.org.reigatepriorybowmen.Service.main(Service.java:74)

服务帐户设置如下:

在此处输入图像描述

那么,我做错了什么?!我花了几个小时在谷歌上搜索寻找解决方案,所以这是我最后的希望。

非常感谢您的帮助。

贾斯汀

0 投票
1 回答
1508 浏览

email - 电子邮件设置 API 身份验证

我想使用带有 Apps 脚本的电子邮件设置 API 来管理 Google 站点上的所有用户签名。我之前使用过 Documents Data APIs 和 2-legged OAuth,它工作得很好。我目前停留在电子邮件设置 API 的身份验证步骤上。

代码示例:

我收到此错误:“意外错误(第 37 行)”,即 var result = UrlFetchApp.fetch("https://apps-apis.google.com/a/feeds/emailsettings/2.0/"+domainName+"/"+用户名+“/签名”,选项);

关于我做错了什么有什么想法吗?

范围在这里: http: //support.google.com/a/bin/answer.py ?hl=en&answer=162105

0 投票
4 回答
79609 浏览

java - 使用 OAuth2 以编程方式向 Google 进行身份验证

如何以编程方式向 Google 进行身份验证?现在 ClientLogin ( https://developers.google.com/accounts/docs/AuthForInstalledApps ) 已被弃用,我们如何使用 OAuth2 对 Google 执行编程身份验证?

使用 ClientLogin,我们可以 使用电子邮件和密码参数向https://www.google.com/accounts/ClientLogin发送帖子并获取身份验证令牌。

使用 OAuth2 我找不到解决方案!

#

我的应用程序是一个 java 后台进程。我看到,按照这个链接:developers.google.com/accounts/docs/OAuth2InstalledApp#refresh,如何使用刷新的令牌获取新的访问令牌。

问题是当我有一个新的有效访问令牌时,我找不到关于如何实例化 Analytics 对象(例如)以执行查询的 java 示例

这是我的代码,它在调用“execute()”时返回 401 Invalid credentials:

问题是什么?

0 投票
6 回答
68927 浏览

google-api - 将使用 Google OAuth2.0 的登录电子邮件限制为特定域名

我似乎找不到任何有关如何限制登录到我的 Web 应用程序(使用 OAuth2.0 和 Google API)的文档,以仅接受来自具有特定域名或一组域名的电子邮件的用户的身份验证请求。我想加入白名单而不是黑名单。

有没有人有关于如何做到这一点的建议,关于官方接受的这样做方法的文档,或者一个简单、安全的解决方法?

作为记录,在他们尝试通过 Google 的 OAuth 身份验证登录之前,我不知道有关用户的任何信息。我收到的只是基本的用户信息和电子邮件。

0 投票
2 回答
144 浏览

oauth-2.0 - Google API 的 OAuth2 是否需要每个用户都登录 Google?

我不明白 OAuth2 如何适用于 Google API。

假设我已经登录 API 的控制台并选择了几个我想使用的 API。我的网站应该向其用户提供这些 API。

我怀疑我的网站用户是否必须登录 GOOGLE 才能使用这些 API。

例如,一些喜欢使用 Facebook 登录的用户无法使用 API?

0 投票
2 回答
15822 浏览

c# - 用于服务应用程序的 Google oAuth 2.0(JWT 令牌请求)

我正在尝试为此处描述的服务帐户实施 Google oAuth 2:UnityScript (或 C# 上的https://developers.google.com/accounts/docs/OAuth2ServiceAccount - 没关系,因为它们都使用相同的 Mono .NET类)。

我在这里找到了类似的主题:Is there a JSON Web Token (JWT) example in C#? web-token-jwt-example-in-c 但我仍然没有成功。

首先,我生成了标题和声明集(就像在谷歌文档中一样)

结果是(为清楚起见,用新行分隔):

{"alg":"RS256","typ":"JWT"}

{"iss":"425466719070-1dg2rebp0a8fn9l02k9ntr6u5o4a8lp2.apps.googleusercontent.com",

“范围”:“ https://www.googleapis.com/auth/prediction ”,

“aud”:“ https://accounts.google.com/o/oauth2/token ”,

“exp”:1340222315,

"iat":1340218715}

Base-64 编码方式:

然后我正在做一个签名。

然后形成请求:

我得到的只是“错误 400:错误请求”。

编码数据看起来像(为清楚起见添加了换行符):

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9。

eyJpc3MiOiI0MjU0NjY3MTkwNzAtMWRnMnJlYnAwYThmbjlsMDJrOW50cjZ1NW80YThscDIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTM0MDIyMjMxNSwiaWF0IjoxMzQwMjE4NzE1fQ。

LIFg7-Og_BcC5qpICLt7USwGIHUOz-vV4ADNq0AWhuRtsvFrbZn5mxk4n9r5qU66q4reTVVAtuW06DeGsdcBMNgEdIMvN6VuYQybs64p9mqrfECBYxO1FWHbUG-2On1IpowybEsRRUjZfp0jFuEYjmezLQ3

我花了两天时间试图找出问题所在,但我看不到。

此外,我找不到任何合适的文档和示例。

我只是想收到一个令牌。

  1. 我是否以正确的方式签署字节?
  2. 声明集中的“范围”参数应该是什么样的?我试过“ https://www.googleapis.com/auth/devstorage.readonly ”和“ https://www.googleapis.com/auth/prediction ”。
  3. “iss”参数应该等于什么?客户 ID 或电子邮件地址?(都试过了)
  4. 有什么方法可以找出我的错误?
  5. 是否有任何用于服务应用程序的 C# 库(不适用于已安装的应用程序或客户端登录)?

我快疯了......它必须工作,但它没有...... :-/

0 投票
1 回答
295 浏览

google-oauth - OAuth 登录后从 Google Apps 中检索用户列表

是否可以使用 OAuth 和 Feed 从第三方应用程序中检索 Google Apps 用户列表?我有使用网站管理员提要检索所有网站的工作脚本。这里有一些信息,但仍然没有成功: https ://developers.google.com/google-apps/profiles/ 。

0 投票
2 回答
487 浏览

ruby-on-rails - Rails 3 + Devise + Google Omniuth + 无确认信

Rails 3.0.9
设计 1.5.3 与可确认

我正在使用 Devise 和 Google OAuth2 身份验证。
当 Google 检查登录并通过时,它会将控制权返回给我的应用程序。

我的问题是:设计发送一封带有确认说明的信。但我希望 Devise 不会只为通过我的应用程序注册的用户发送 Google 帐户的此类信件。

用户模型是:

用户::OmniauthCallbacksController

路线.rb:

0 投票
1 回答
880 浏览

playframework-2.0 - SecureSocial 2 与 play 2 框架

我正在尝试使用 SecureSocial 2。当我尝试使用现有帐户(例如 Google)时,它给了我错误:

请告诉我我该怎么做才能解决它。非常感谢。

0 投票
2 回答
969 浏览

c# - 服务器应用程序的 GData 身份验证

我有一个在服务器上运行的应用程序,它定期从 Google Analytics 中提取数据。它不会发出很多查询,所以我认为任何限制都不是问题。

我有一个原型正在运行,但是我必须提供一个登录密码以进行身份​​验证(在代码中)。

我看到我可以在 Google API 控制台中生成 API 密钥和其他类型的身份验证,但是我不确定如何使用它们以及是否可以使用它们来代替登录名/密码。

使用用户登录名/密码来验证服务器应用程序似乎并不正确。

还有其他方法吗?

(我正在使用 C# 客户端库)