问题标签 [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.
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 游乐场有两个范围:
先感谢您!
google-api - Google JS API 返回“未指定应用程序 ID”
这是 GitHub 问题的复制粘贴,但由于项目贡献者缺乏回应,这里被问到:
你好呀!
这是我第一次使用 Google API,我正在尝试获得我(最终用户)的 Google Play 游戏级别。我已经完成了相当多的研究,并且一直在修改 Google 提供的 oauth 示例。
我的“工作”示例可以在这里找到。
在完成基本身份验证并access_token
从 Google 获得我的身份后,我开始直接在 Game 的源头(更具体地说,这里)并开始得到以下响应:
我认为是我的错,然后我去了OAuth 2.0 Playground
我按照最简单的方法来完成我需要的请求:
https://www.googleapis.com/auth/games
在选择和授权 API 框中输入- 给它它想要的访问权限,然后登录。
- 交换令牌的身份验证代码。
- 输入以下请求 URI
https://www.googleapis.com/games/v1/players/me
- 发送请求
- 与上述相同的错误。
“奇怪”我想。所以我去了我学习的地方。
https://developers.google.com/games/services/web/api/players/get#try-it
- 输入
me
_playerId
- 按执行。
- 与上述相同的错误。
现在这个问题完全在我头上。两个官方资源和我自己的糟糕的代码都输出了错误。我相信错误存在于谷歌的某个地方,但我不确定。
我的下一步是等待比我更熟练的人的进一步帮助,以使这个问题指向正确的方向。
谢谢!
oauth - GoogleAPI oauth2 刷新令牌在 1 小时后过期
我在我的应用程序中使用 Google API,并且 oauth2 刷新令牌在 1 小时后过期。我正在使用此刷新令牌来执行每天运行的任务。我使用 OAuth2 游乐场创建刷新令牌。有没有办法延长刷新令牌的过期时间?(1个月)
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 的代码时遇到了问题。为此,我遵循了以下步骤:
- 访问https://console.developers.google.com并创建一个新项目
- 在左侧菜单中,选择“库”
在下一个屏幕上,选择 Web 应用程序
输入新 Web 应用程序的名称
在“Authorised JavaScript origins”中设置“ http://localhost ”
在“授权重定向 URI”中设置“ https://developers.google.com/oauthplayground ”,因为目前我们将要求 Google OAuth Playground 上的身份验证响应。然后点击创建。
成功后,您将收到您将在 Google OAuth Playground 中提供的帐户的“客户端 ID”和“客户端密码”,以验证其他用户的应用程序。
现在访问https://developers.google.com/oauthplayground并点击设置齿轮。在下拉菜单中,选中“使用您自己的 OAuth 凭据”并输入在步骤 9 中收到的“OAuth 客户端 ID”和“OAuth 客户端密码”
接下来,在“步骤 1 选择和授权 API”部分中,选择“Apps Script API v1”并进一步选择“ https://www.googleapis.com/auth/forms ”选项并单击授权
接下来,它将询问您要访问所选范围的帐户的授权。在此,我使用创建用于创建代码的“App Script”的同一帐户,以及生成“Client ID”和“Client Secret”的相同帐户。
- 在 PlayGround 中输入脚本 ID,然后通过单击“输入请求正文”按钮设置请求正文。要了解请求正文参数,请参阅文档https://developers.google.com/apps-script/api/reference/rest/v1/scripts/run
- 现在点击“发送请求”
完成上述所有步骤后,我们收到以下身份验证错误:
提前感谢您的解决方案。
rest - 如何在 Google REST 查询中获取特定文件 ID 的数据?
我正在 OAuth2 操场上试验 GoogleDrive-v3 REST api。在那里,我试图从带有文件 ID/文件名的响应中过滤特定文件信息的字段。
在这里,我粘贴了我的 REST 查询以过滤文件 ID 为“PuwuUXGsjLaf6gxyrye_g7OmMw”的文件信息。但是,它不会过滤指定文件 ID 的响应。相反,它会打印 REST 查询的完整响应。
纠正我在这里缺少的东西。提前致谢。
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。
javascript - 从 Calendar API 返回日期和时间数组
没有用于设置 JavaScript 谷歌日历 API 调用的清晰、简洁且易于遵循的示例。
我找到了一个示例,我尝试使用将我的 OAuth 密钥插入其中但它不起作用。要查看具体错误,请访问Staging 网站并打开控制台。
问题:我找不到复制和粘贴示例,我所要做的只是换掉 OAuthkey 和 clientID,这样我就可以返回我拥有的 Google 日历上当前的日期和时间数组.
最终目标:能够根据返回的日期数组过滤 jQuery 日期选择器停电日期。然后,根据当天已预订的内容(如果有可用的时间段)过滤时间段下拉菜单。
我无法超越让一切都互相交谈的第一步。
google-smart-home - 无法通过 OAuth 2.0 Playground 检索 agentUserId
按照以下网站上的说明进行操作时,我陷入了第 2 步。
https://developers.google.com/assistant/smarthome/tools/smart-home-test-suite
单击“交换令牌的授权码”后,我没有收到任何代码,而是出现401 Unauthorized
错误。
不知道在此测试期间出了什么问题,因为该操作本身运行良好。
这是 OAuth 游乐场的输出:
oauth2-playground - OAuth 2.0 Playground:授权 API 按钮
OAuth 2.0 游乐场。“授权 API”按钮始终处于禁用状态,即使在我选择了范围之后也是如此。我尝试了许多不同的范围。按钮旁边的编辑框中的文本也永远不会改变。在 Windows 上使用最新版本的 Firefox。
编辑:显然它与发送我到那里的链接有关,在这个页面上: https ://developers.google.com/adwords/api/docs/guides/authentication
我从 URL 中删除了参数,然后它起作用了。
google-api - 公共 Youtube/Google API 测试账号/频道
我正在尝试测试我的 Youtube Analytics API 实现,但我自己的 Google 帐户没有任何(高级受众)数据可提供。
是否有任何可用的公共测试帐户(Youtube 频道),所以我可以检查我的请求(带有有用的响应数据)?