问题标签 [oauth2-playground]

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 投票
2 回答
1919 浏览

google-signin - Google OAuth 2.0 - 离线访问的增量授权

我正在尝试在我的应用程序中使用 Google Oauth2实现增量授权。

起初,当用户登录时,应用程序正在请求一些范围和离线访问。我正在生成并存储 refreshToken 在我的数据库中,以便我可以刷新访问令牌以在需要时进行 API 调用。

现在我要实现一个新功能,它会请求一个新的范围,但我只想在用户尝试使用这个新功能时才请求这个范围。

我面临的问题是,当应用程序提示用户同意新范围时,Google 正在请求访问所有以前接受的范围。

我尝试过不进行离线访问(使用“授予”方法),它似乎正在工作(正如描述中所说的“向用户请求额外的范围。”)。这样做,谷歌只请求新的范围,并且生成的访问令牌似乎工作正常。但是,如果我尝试离线访问(使用'grantOfflineAccess' 方法),Google 会要求提供所有范围。如果我再次接受所有范围,它会返回一个授权码,我可以再次生成 refreshToken,但我只想接受新范围。

我想知道在请求脱机访问时可能无法做到这一点,因为您需要生成一个具有所有范围的新 refreshToken,但我找不到任何有关此的信息。

我做错了什么还是无法通过离线访问来实现这一点?

更新:还生成 URL(而不是使用 JS 库),如此所述,Google 要求提供所有范围。这将是生成的 URL 的示例:

UPDATE2:我在这里发现了一个报告的问题,有人评论说不可能对已安装的应用程序执行此操作。但是有一条评论解释了如何使用网络服务器流来做到这一点,这些是使用 OAuth2 操场(https://developers.google.com/oauthplayground)的步骤:

1)选择谷歌日历范围。

2) 授权访问

3) 代币兑换码。

4) 向令牌信息端点发出请求: https ://www.googleapis.com/oauth2/v2/tokeninfo?access_token= ...

5) 验证令牌是否仅包含 Google 日历范围。

6) 取消选择 Google Calendar 范围并选择 Google Drive 范围。

7) 在授权窗口中编辑 URL 并附加 &include_granted_scopes=true。

8) 授权驱动范围。

9) 将代码换成代币。

10) 向令牌信息端点发出请求。

11) 验证它是否包含日历和驱动器范围。

做同样的事情,我在第一次验证中获得日历范围,在第二次验证中获得驱动范围。即使使用刷新令牌,我也无法获得具有两个范围的访问令牌。在那之后,这很奇怪,我检查了可以访问我的帐户的应用程序,并且 OAuth2 游乐场有两个范围:

在此处输入图像描述

先感谢您!

0 投票
0 回答
83 浏览

google-api - Google JS API 返回“未指定应用程序 ID”

这是 GitHub 问题的复制粘贴,但由于项目贡献者缺乏回应,这里被问到:

你好呀!

这是我第一次使用 Google API,我正在尝试获得我(最终用户)的 Google Play 游戏级别。我已经完成了相当多的研究,并且一直在修改 Google 提供的 oauth 示例。

我的“工作”示例可以在这里找到。

在完成基本身份验证并access_token从 Google 获得我的身份后,我开始直接在 Game 的源头(更具体地说,这里)并开始得到以下响应:

我认为是我的错,然后我去了OAuth 2.0 Playground

我按照最简单的方法来完成我需要的请求:

  1. https://www.googleapis.com/auth/games在选择和授权 API 框中输入
  2. 给它它想要的访问权限,然后登录。
  3. 交换令牌的身份验证代码。
  4. 输入以下请求 URIhttps://www.googleapis.com/games/v1/players/me
  5. 发送请求
  6. 与上述相同的错误。

“奇怪”我想。所以我去了我学习的地方。

https://developers.google.com/games/services/web/api/players/get#try-it

  1. 输入me_playerId
  2. 按执行。
  3. 与上述相同的错误。

现在这个问题完全在我头上。两个官方资源和我自己的糟糕的代码都输出了错误。我相信错误存在于谷歌的某个地方,但我不确定。

我的下一步是等待比我更熟练的人的进一步帮助,以使这个问题指向正确的方向。

谢谢!

0 投票
2 回答
2846 浏览

oauth - GoogleAPI oauth2 刷新令牌在 1 小时后过期

我在我的应用程序中使用 Google API,并且 oauth2 刷新令牌在 1 小时后过期。我正在使用此刷新令牌来执行每天运行的任务。我使用 OAuth2 游乐场创建刷新令牌。有没有办法延长刷新令牌的过期时间?(1个月)

0 投票
1 回答
3251 浏览

google-apps-script - 如何从 Google OAuth 2.0 Playground 运行 Google App Script 功能 | 调用者没有权限

我创建了一个新脚本,在我的谷歌帐户上创建“谷歌表单”。以下是示例代码: 在此处输入图像描述

接下来,通过转到 Publish > Deploy as API Executable 使 API Executable 在此处输入图像描述

现在,如果我直接从 Google App Script 执行代码,它工作得非常好,并且表单也正在创建中。

现在我在执行来自 Google OAuth 2.0 Playground 的代码时遇到了问题。为此,我遵循了以下步骤:

  1. 访问https://console.developers.google.com并创建一个新项目
  2. 在左侧菜单中,选择“库”
  3. 在 App Script Library 中,搜索“Apps Script API”并启用它 在此处输入图像描述

  4. 接下来,转到凭据菜单并单击“创建凭据”> OAuth 客户端 ID 在此处输入图像描述

  5. 在下一个屏幕上,选择 Web 应用程序

  6. 输入新 Web 应用程序的名称

  7. 在“Authorised JavaScript origins”中设置“ http://localhost

  8. 在“授权重定向 URI”中设置“ https://developers.google.com/oauthplayground ”,因为目前我们将要求 Google OAuth Playground 上的身份验证响应。然后点击创建。

  9. 成功后,您将收到您将在 Google OAuth Playground 中提供的帐户的“客户端 ID”和“客户端密码”,以验证其他用户的应用程序。 在此处输入图像描述

  10. 现在访问https://developers.google.com/oauthplayground并点击设置齿轮。在下拉菜单中,选中“使用您自己的 OAuth 凭据”并输入在步骤 9 中收到的“OAuth 客户端 ID”和“OAuth 客户端密码” 在此处输入图像描述

  11. 接下来,在“步骤 1 选择和授权 API”部分中,选择“Apps Script API v1”并进一步选择“ https://www.googleapis.com/auth/forms ”选项并单击授权 在此处输入图像描述

  12. 接下来,它将询问您要访问所选范围的帐户的授权。在此,我使用创建用于创建代码的“App Script”的同一帐户,以及生成“Client ID”和“Client Secret”的相同帐户。 在此处输入图像描述

在此处输入图像描述

  1. 上述步骤将生成“授权码”,进一步您可以生成“刷新令牌”和“访问令牌”。 在此处输入图像描述

  2. 接下来,我们必须使用服务来执行 google app 脚本代码。单击“列出可能的操作”,然后选择“运行脚本” 在此处输入图像描述

    1. 接下来将生成一个语法,询问您可以从 google app 脚本项目中找到的脚本 ID。为此,在 google App Script 项目上,单击 File > Project Properties,最后将打开一个弹出窗口,引用脚本 ID 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

  1. 在 PlayGround 中输入脚本 ID,然后通过单击“输入请求正文”按钮设置请求正文。要了解请求正文参数,请参阅文档https://developers.google.com/apps-script/api/reference/rest/v1/scripts/run

在此处输入图像描述

在此处输入图像描述

  1. 现在点击“发送请求”

完成上述所有步骤后,我们收到以下身份验证错误:

在此处输入图像描述

提前感谢您的解决方案。

0 投票
1 回答
555 浏览

rest - 如何在 Google REST 查询中获取特定文件 ID 的数据?

我正在 OAuth2 操场上试验 GoogleDrive-v3 REST api。在那里,我试图从带有文件 ID/文件名的响应中过滤特定文件信息的字段。

在这里,我粘贴了我的 REST 查询以过滤文件 ID 为“PuwuUXGsjLaf6gxyrye_g7OmMw”的文件信息。但是,它不会过滤指定文件 ID 的响应。相反,它会打印 REST 查询的完整响应。

纠正我在这里缺少的东西。提前致谢。

0 投票
1 回答
368 浏览

node.js - 通过 OAuth 2.0 Playground 发送 Gmail

我已经编写了通过 OAuth2 将邮件从我的 gmail 帐户发送到另一个帐户的代码。在OAuth2中,我们需要在https://developers.google.com/oauthplayground/上生成一个refreshToken和accessToken,由此生成的accessToken会在3600秒后过期。我想要一些会生成 accessToken 的代码。

我已经编写了代码,我直接从该站点https://developers.google.com/oauthplayground/放置 refreshToken 和 acessToken 。

//javascript代码主文件app.js

这工作正常,但我希望使用一些代码生成 accessToken。

0 投票
1 回答
134 浏览

javascript - 从 Calendar API 返回日期和时间数组

没有用于设置 JavaScript 谷歌日历 API 调用的清晰、简洁且易于遵循的示例。

我找到了一个示例,我尝试使用将我的 OAuth 密钥插入其中但它不起作用。要查看具体错误,请访问Staging 网站并打开控制台。

问题:我找不到复制和粘贴示例,我所要做的只是换掉 OAuthkey 和 clientID,这样我就可以返回我拥有的 Google 日历上当前的日期和时间数组.

最终目标:能够根据返回的日期数组过滤 jQuery 日期选择器停电日期。然后,根据当天已预订的内容(如果有可用的时间段)过滤时间段下拉菜单。

我无法超越让一切都互相交谈的第一步。

0 投票
1 回答
100 浏览

google-smart-home - 无法通过 OAuth 2.0 Playground 检索 agentUserId

按照以下网站上的说明进行操作时,我陷入了第 2 步。

https://developers.google.com/assistant/smarthome/tools/smart-home-test-suite

单击“交换令牌的授权码”后,我没有收到任何代码,而是出现401 Unauthorized错误。

不知道在此测试期间出了什么问题,因为该操作本身运行良好。

这是 OAuth 游乐场的输出:

0 投票
1 回答
83 浏览

oauth2-playground - OAuth 2.0 Playground:授权 API 按钮

OAuth 2.0 游乐场。“授权 API”按钮始终处于禁用状态,即使在我选择了范围之后也是如此。我尝试了许多不同的范围。按钮旁边的编辑框中的文本也永远不会改变。在 Windows 上使用最新版本的 Firefox。在此处输入图像描述

编辑:显然它与发送我到那里的链接有关,在这个页面上: https ://developers.google.com/adwords/api/docs/guides/authentication

我从 URL 中删除了参数,然后它起作用了。

0 投票
0 回答
121 浏览

google-api - 公共 Youtube/Google API 测试账号/频道

我正在尝试测试我的 Youtube Analytics API 实现,但我自己的 Google 帐户没有任何(高级受众)数据可提供。

是否有任何可用的公共测试帐户(Youtube 频道),所以我可以检查我的请求(带有有用的响应数据)?